Ошибка «Несоответствие имени сертификата»

У меня есть самоподписанный сертификат на моем сервере Apache2, и я пытаюсь настроить правильную конфигурацию, чтобы имя «Кому выдан:» в сертификате соответствовало HTTPS-адресу в адресной строке. Я получаю следующие ошибки безопасности:

The certificate for this site does not contain a Subject Alternative Name 
extension containing a domain name or IP address

There are issues with the site's certificate chain 
(net::ERR_CERT_COMMON_NAME_INVALID)

См. Изображение ниже. enter image description here

0
07.05.2017, 22:30
3 ответа

После долгих исследований я пришел к выводу, что проблема заключается в том, что совсем недавно и Chrome (58), и Firefox (48) теперь требуют, чтобы сертификаты указывали имена хостов, к которым они применяются, в поле SubjectAltName; значения в поле Тема будут игнорироваться. Дополнительная информация здесь: https://textslashplain.com/2017/03/10/chrome-deprecates-subject-cn-matching/. Кроме того, Стив Гибсон прекрасно объясняет это, если вам нужно звуковое объяснение примерно на отметке 1:24:00: https://twit.tv/shows/security-now/episodes/610?autostart= ложь.

Тем не менее, для тех, кто создает самоподписанные сертификаты, теперь у нас есть дополнительный шаг — добавление альтернативного имени субъекта (поле SAN). Все это описано здесь: https://stackoverflow.com/questions/10175812/how-to-create-a-self-signed-certificate-with-openssl/27931596#27931596; однако это долгий путь со многими ответами. В основном все сводится к ответу, который дает JWW: вам нужно создать файл конфигурации, содержащий поле subjectAltName, а затем передать его, например:

openssl req -config example-com.conf -new -x509 -sha256 -newkey rsa:2048 -nodes \
-keyout example-com.key.pem -days 365 -out example-com.cert.pem

В треде, на который отвечает JWW, есть хороший пример файла конфигурации. Ищите: «Файл конфигурации (передается через параметр -config)»

Теперь ваш сертификат будет иметь SubjectAltName, и Chrome и Firefox будут счастливы

1
28.01.2020, 05:05
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -subj "/C=US/ST=Oregon/L=Portland/O=Company Name/OU=Org/CN=www.example.com"

замените "subj" на желаемое имя

-1
28.01.2020, 05:05

Я знаю, что это не обязательно правильный ответ на ваш точный вопрос, но, вероятно, у вас нет причин использовать самоподписывающиеся сертификаты, когда Let's Encrypt существуют. Это полностью бесплатная служба сертификации, и сертификаты, которые вы получаете, будут работать почти так же, как те, которые вы можете получить из других мест (например, Comodo). Кроме того, как прокомментировал Фокс, не подключайтесь по IP; если вы подключаетесь к серверу с SSL/TLS, и он использует сертификат, который не содержит адрес, к которому вы подключились (т.е. два имени хоста указывают на одну и ту же машину, но только одно находится в сертификате. Вы подключаетесь к тому, на сертификате), ваш браузер сообщит о небезопасном соединении.

-1
28.01.2020, 05:05

Теги

Похожие вопросы