Ошибка ERR: CERT_COMMON_NAME_INVALID в Chrome при использовании SSL сертификата.
Недавно столкнулся с проблемой при создании SSL сертификов. Нужно было подписать сертификат на доменном CA для одного хоста, по привычке я воспользовался командой:
1 |
openssl req -new -newkey rsa:2048 -nodes -keyout SSL.key -out SSL.csr |
Но после установки сертификатов обнаружил что Chrome, в отличие от других браузеров не принимает такой сертификат. В этой заметке я расскажу в чем проблема и как ее исправить.
Проблема в том что Chrome, начиная в 58 версии игнорирует поле Common Name и из-за этого не доверяет такому сертификату.
Раньше я не замечал эту проблему, т.к. выписывал сертификаты сразу с несколькими DNS Name — такие сертификаты как раз подходят.
Чтобы создать такой сертификат, нужно создать следующий шаблон в виде текстового файла:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[ req ] default_bits = 2048 distinguished_name = req_distinguished_name req_extensions = req_ext [ req_distinguished_name ] countryName = Country Name (2 letter code) stateOrProvinceName = State or Province Name (full name) localityName = Locality Name (eg, city) organizationName = Organization Name (eg, company) commonName = Common Name (e.g. server FQDN or YOUR name) [ req_ext ] subjectAltName = @alt_names [alt_names] DNS.1 = mysrv1.domain.local DNS.2 = mysrv2.domain.local DNS.3 = mysrv3.domain.local |
Далее выполняем команду для создания приватного ключа и запроса для подписи сертификата в CA
1 |
openssl req -out sslcert.csr -newkey rsa:2048 -nodes -keyout private.key -config myssl-config.cnf |
Далее как обычно подписываем сертификат (содержимое файла sslcert.csr, шаблон CA — web server)
Сертификат такого вида подходит для всех браузеров.
Добавить комментарий