#ssl #certificate #ssl-certificate
#ssl #сертификат #ssl-сертификат
Вопрос:
Вызвано: javax.net.ssl.SSLPeerUnverifiedException: Имя хоста 97.xx.xxx.xxx не проверено: сертификат: sha256/tjx1IRiuC1TmxlIIhW8FWOxoaFoY2E3mECOgtGW0Jqk= DN: O= Internet Widgits Pty Ltd, ST = Some-State, C= AU subjectAltNames: [97.xx.xxx.xxx]
Сведения о сертификате
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
XXXXXXX
Signature Algorithm: sha256WithRSAEncryption
Issuer: C = US, ST = Some-State, O = Internet Widgits Pty Ltd
Validity
Not Before: Apr 22 17:42:36 2019 GMT
Not After : Apr 20 17:42:36 2024 GMT
Subject: C = AU, ST = Some-State, O = Internet Widgits Pty Ltd
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
XXXXX
Exponent: XXX
X509v3 extensions:
X509v3 Authority Key Identifier:
keyid:XXXXX
X509v3 Basic Constraints:
CA:FALSE
X509v3 Key Usage:
Digital Signature, Non Repudiation, Key Encipherment, Data Encipherment
X509v3 Subject Alternative Name:
DNS:97.XX.XXX.XXX
Signature Algorithm: sha256WithRSAEncryption
XXXXXX
Я получаю вышеуказанную ошибку при использовании сертификата с IP-адресом. Есть ли что-то еще, что я должен сделать для создания сертификата с Ip-адресом? Каковы причины Hostname not verified: exception
Комментарии:
1. Не могли бы вы предоставить более подробную информацию о сертификате. Примечательно, что IP-адрес в subjectAltNames должен иметь тип IP, а не DNS.
2. @SteffenUllrich да, это тип DNS. Я добавил больше деталей. Как я мог бы изменить его на тип IP?
3. Вы не можете изменить существующий сертификат. Вам нужно будет создать новый сертификат, в котором вы укажете тип записи subjectAltNames как IP, а не DNS.
Ответ №1:
Я смог заставить его работать, как предложил Штеффен в комментариях, я добавил IP-адрес домена в subjectAltName с типом IP.
openssl x509 -req -in certificate_sign_req.csr -CA myCA.pem -CAkey myCA.key -CAcreateserial -out signed_certificate.crt -days 1825 -sha256 -extfile <(cat <<EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
IP.1 = ${domain}
EOF
)