net::ERR_CERT_COMMON_NAME_INVALID в Google Chrome
Рассмотрим, как исправить ошибку «net::ERR_CERT_COMMON_NAME_INVALID», которая возникает для самоподписанного сертификата.
Полный текст ошибки:
Your connection is not private Attackers might be trying to steal your information from hackware.local (for example, passwords, messages, or credit cards). Learn more about this warning net::ERR_CERT_COMMON_NAME_INVALID Turn on enhanced protection to get Chrome's highest level of security This server could not prove that it is hackware.local; its security certificate does not specify Subject Alternative Names. This may be caused by a misconfiguration or an attacker intercepting your connection. Proceed to hackware.local (unsafe)
Данная ошибка может возникнуть как при обращении к сайту в Интернете, так и для локального сайта для которого вы создали SSL сертификат, например, для тестирования HTTPS настроек.
В Интернете самой частой причиной данной ошибки является не совпадение имени домена, для которого выдан сертификат с тем именем которое вы используете для подключения к веб-серверу. Чтобы было понятнее, например, вы обращаетесь к веб-сайту указав в строке браузера IP адрес вместо доменного имени. Или доменное имя не совпадает с сертификатом — такое тоже может быть по разным причинам, например, я сталкивался с такими примерами на виртуальных хостингах, когда используется сертификат хостера для тех сайтов, которые не настроили HTTPS, но к которым обращаются по HTTPS протоколу.
Проще говоря, ошибка «net::ERR_CERT_COMMON_NAME_INVALID» для сайтов в Интернете это, скорее всего, не ваша головная боль (если, конечно, вы не являетесь владельцем проблемного сайта).
Как исправить «net::ERR_CERT_COMMON_NAME_INVALID» для самоподписанного сертификата
Эта заметка посвящена ошибке «net::ERR_CERT_COMMON_NAME_INVALID» возникающей на локальном компьютере или сервере, для которого вы сгенерировали самоподписанный SSL сертификат.
Примечание: чтобы самоподписанный сертификат воспринимался веб-браузерами как подписанный надёжным источником, сертификат локального Центра Сертификации (CA) уже должен быть добавлен в доверенные. Подробности смотрите в разделе Как добавить корневой сертификат в доверенные в Linux в веб браузеры. Тем не менее, если вы столкнулись с ошибкой «net::ERR_CERT_COMMON_NAME_INVALID», скорее всего, сертификат локального Центра Сертификации (CA) уже добавлен в доверенные, иначе ошибка бы была иной.
Итак, вы создали сертификат указав доменное имя (имя хоста) правильно, но всё равно возникает ошибка «net::ERR_CERT_COMMON_NAME_INVALID».
Если вчитаться в сообщение, то в нём явно сказано — неправильное Common Name (CN).
Common Name в сертификате — это то самое поле в котором хранится имя домена. То есть можно подумать, что имя домена (имя хоста) указано с ошибкой.
Если вы кликните на сообщении «net::ERR_CERT_COMMON_NAME_INVALID», то будут показаны дополнительные сведения, среди них поле «Subject»:
Subject: hackware.local
Вы можете сравнить значение Subject с введённым доменным именем в адресной строке сайта.
Веб-браузеры используют имя хоста из Subject Alternative Name (subjectAltName)
Но как бы вы не перепроверяли Common Name (CN) и, может быть, даже пересоздали сертификат без опечаток в Common Name, вам ничего из этого не поможет. Дело в том, что сообщение ошибки показывает неверную причину. Теперь веб-браузеры сравнивают имя домена в адресной строке и имя домена для которого действителен сертификат беря его из поля Subject Alternative Name.
То есть, даже если создать сертификат с правильным Common Name (CN), то он всё равно будет вызывать ошибку «net::ERR_CERT_COMMON_NAME_INVALID».
Чтобы исправить ошибку «net::ERR_CERT_COMMON_NAME_INVALID» создайте сертификат с расширением Subject Alternative Name. Это довольно просто.
Расширение Subject Alternative Name добавляется НЕ во время создания запроса подписи сертификата, а во время подписи сертификата. То есть генерация приватного ключа и запроса на подпись сертификата выполняются обычным способом.
Перед созданием самоподписанного сертификата, нужно создать файл с настройками Subject Alternative Name (subjectAltName). Я в качестве имени файла выбрал extraoptions.ext, но вы можете выбрать любое другое. Пример синтаксиса файла (для домена hackware.local):
subjectAltName = DNS:hackware.local
После DNS нужно указать имя хоста. Вы также можете указать имя хоста с подстановочными знаками. Если значений несколько, то они разделяются запятыми:
subjectAltName = DNS:*.hackware.local, DNS:hackware.local
Затем, на этапе подписания сертификата вам нужно указать опцию -extfile и затем имя файла, куда вы сохранили настройки:
openssl x509 -req -in DOMAIN.NAME.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out DOMAIN.NAME.crt -days 500 -sha256 -extfile extraoptions.ext
Также смотрите подробности в статье: Как добавить Subject Alternative Name (subjectAltName) в самоподписанный сертификат
Теперь после создания самоподписанного сертификата переместите его в директорию SSL сертификатов веб-сервера и перезапустите веб-сервер, чтобы изменения вступили в силу. В веб-браузере для перезагрузки страницы рекомендуется использовать сочетание Ctrl+F5 для принудительной загрузки новой версии страницы, без использования кэша веб-браузера.
Вот и всё — проблема решена! Теперь соединение отмечено как безопасное.
Связанные статьи:
- Ошибка «Error code: SSL_ERROR_BAD_CERT_DOMAIN» для самоподписанного сертификата (РЕШЕНО) (100%)
- Ошибка «Error code: SSL_ERROR_RX_RECORD_TOO_LONG» (РЕШЕНО) (100%)
- Ошибка «ERR_SSL_PROTOCOL_ERROR» (РЕШЕНО) (100%)
- Как добавить Subject Alternative Name (subjectAltName) в самоподписанный сертификат (96.7%)
- Ошибка «net::ERR_CERT_AUTHORITY_INVALID» для самоподписанного сертификата (РЕШЕНО) (68%)
- Решение ошибки VERR_VD_IMAGE_READ_ONLY (RANDOM - 0.8%)