среда, 6 декабря 2017 г.

Сертификаты подписанные центром в домене .local

Браузер chrome не желает признавать доверенными сертификаты, выданные узлам с адресами <какой то хост>.local

Причина давняя почитать про это можно тут:
https://blog.comodo.com/e-commerce/phase-ssl-certs-internal-names-reserved-ip/
https://casecurity.org/2014/07/18/what-to-do-when-you-rely-on-internal-names-in-tlsssl-certificates/
https://productforums.google.com/forum/#!topic/chrome/zVo3M8CgKzQ;context-place=topicsearchin/chrome/category

Мы рассмотрим ситуацию, когда у вас в инфраструктуре есть корпоративный центр сертификации (Enterprise CA). Обсуждение самой инфраструктуры PKI выходит за замки данного поста, напишу как нибудь в следующий раз.

Сертификат должен быть с расширением SAN (subject alternative name) и подчиненные ему поля должны содержать как минимум FQDN узла, но для удобства можно добавить и IP адрес.

Нам необходимо создать запрос к центру сертификации, на выпуск нам сертификата, с этим расширением.
Будем использовать утилиту openssl на CentOS.
Для начала включим расширения:

nano /etc/pki/tls/openssl.cnf

Ищем закоментированную строку

#req_extensions = v3_req # The extensions to add to a certificate request

убираем #

req_extensions = v3_req # The extensions to add to a certificate request

Теперь создаем файл cert.in, с таким содержимым:

[ req ]
default_bits = 2048
prompt = no
encrypt_key = no
default_md = sha256
distinguished_name = dn
req_extensions = req_ext

[ dn ]
CN = srv-example.mydomain.local
O = CoolCompany
OU = Default
L = Saint-Petersburg
ST = NA
C = RU

[ req_ext ]
subjectAltName = DNS: srv-example.mydomain.local,IP:192.168.0.100

Создаем запрос и за одно сохраняем закрытый ключ:

openssl req -new -config cert.in -keyout cert.key -out cert.crs

По запросу cert.crs наш центр сертификации выпускает для нас сертификат.
Мы его должны сохранить в формате Base 64 в файл cert.cert

Теперь мы можем экспортировать сертификат с закрытым ключом в формате PKCS12:

openssl pkcs12 -inkey cert.key -in cert.cert -export -out cert.cert.pfx

Вводим пароль и файл готов.



Комментариев нет:

Отправить комментарий