Цепочка сертификатов (самоподписанный корневой ЦС)

Я создаю самоподписанный корневой центр сертификации для внутреннего использования, я решил использовать промежуточный сертификат. Однако у меня возникают проблемы с Chromium и Firefox 54.0, которые не доверяют цепочке сертификатов.

Контент размещается через Apache 2.4.18 в Ubuntu 16.04 со следующей конфигурацией: DocumentRoot / var / www / html / SSLCertificateFile /etc/apache2/ssl/server.crt SSLCertificateKeyFile /etc/apache2/ssl/server.key SSLCertificateChainFile /etc/apache2/ssl/fullchain.crt

Chromium сообщает "Есть проблемы с цепочкой сертификатов сайтов", а Firefox "Код ошибки: SEC_ERROR_CA_CERT_INVALID". И Chromium, и Firefox имеют корневой ЦС, установленный в их хранилище доверенных сертификатов, в качестве доверенного сертификата для проверки веб-сайтов.

Ниже приведена настройка, используемая для создания, подписи и проверки сертификатов

# Создать и самостоятельно подписать корневой ЦС # ================================================= ========== openssl genrsa -out ca.key 2048 #openssl genrsa -aes256 -out ca.key 4096 openssl req -new -x509 -days 3650 -key ca.key -subj "/ C = UK / ST = London / L = / O = SWS, Inc./CN=X1 SWS Root CA" -out ca.crt # === Создать и подписать промежуточный ЦС # =================================================== =========== openssl req -newkey rsa: 2048 -nodes -keyout intermediate.key -subj "/ C = UK / ST = London / L = / O = SWS Intermediate, Inc./CN=SWS Intermediate CA" -out Intermediate.csr openssl x509 -req -extfile <(printf "subjectAltName = DNS: localhost") -in intermediate.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out Intermediate.crt -days 2000 -sha256 # === Создать сертификат и подписать его с помощью промежуточного ЦС # =================================================== =========== openssl req -newkey rsa: 2048 -nodes -keyout server.key -subj "/ C = UK / ST = London / L = / O = SWS, Inc./CN=*.sws.com" -out server.csr openssl x509 -req -extfile <(printf "subjectAltName = DNS: sws.com, DNS: *. sws.com") -days 730 -in server.csr -CA intermediate.crt -CAkey intermediate.key -CAcreateserial -out server .crt # === Создать цепочку сертификатов # ================================================= ========== кот промежуточный.crt ca.crt> fullchain.crt # === Проверить информацию о сертификате (CRT) # =================================================== =========== openssl x509 -in server.crt -text -noout # === Проверяет цепочку доверия # =================================================== =========== openssl verify -CAfile ca.crt intermediate.crt openssl verify -verbose -CAfile <(cat intermediate.crt ca.crt) server.crt

Это кажется довольно странным, поскольку цепочка сертификатов действительна, и выполнение тех же действий без промежуточного звена обеспечивает действительную цепочку сертификатов в Chromium и Firefox.

Пожалуйста, примите во внимание, что доменное имя «sws.com» является локальный DNS; он настраивается через файл hosts.

0
задан 31 August 2017 в 15:28
1 ответ

Поскольку эта тема довольно большая, я решил прикрепить нижеприведенные URL-адреса с подробными объяснениями процедуры настройки.

Используя документы по Jamie Linux, я создал корневой каталог и промежуточный CA. Тем не мение,в это руководство не входило расширение X509v3 для альтернативных имен субъектов. Это было легко разрешено путем изменения промежуточного файла / openssl.cnf в модуле [server_cert] путем добавления следующих строк.

[server_cert] ... subjectAltName = @alt_names [alt_names] DNS.1 = example.com DNS.2 = www.example.com

Измененный промежуточный файл конфигурации был добавлен ниже как «Config ICA».

Проблема, которую я сделал с первоначальным вопросом, заключалась в том, что промежуточный CA не имел основных ограничений. Следовательно, это был сертификат X509v1, так что у него не было ограничений, указывающих, был ли он CA, а поскольку X509v1 устарел, все браузеры автоматически не доверяют цепочке доверия.


Jamie Linux: https: // jamielinux. com / docs / openssl-certificate-Authority / create-the-root-pair.html
Конфигурация ICA: https://pastebin.com/gCGcFdiP

0
ответ дан 24 November 2019 в 03:54

Теги

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