5

Я создал самозаверяющий сертификат SSL для локальной разработки. При доступе к странице я получаю ошибку NET::ERR_CERT_AUTHORITY_INVALID . Но когда я пытаюсь импортировать его в Chrome (chrome://settings/ Certificates), происходит сбой:

Файл содержал один сертификат, который не был импортирован:

  • mylocalwebapp.dev: не центр сертификации

Это команда, которую я выполнил для создания сертификата:

openssl req -new -x509 -nodes \
 -extensions SAN \
 -reqexts SAN  \
 -days 365 \
 -newkey rsa:2048 \
 -keyout /etc/ssl/private/apache-selfsigned.key \
 -out /etc/ssl/certs/apache-selfsigned.crt \
 -config <(cat /etc/ssl/openssl.cnf <(printf '[SAN]\nsubjectAltName=DNS:mylocalwebapp.dev'))

Я добавил опции SAN, потому что в версии 58 Chrome не принимает его без SAN. Он работал на Chrome 57 и до сих пор работает на Firefox.

Как я могу получить свой самозаверяющий сертификат, работающий на Chrome 58 в Ubuntu 17.04?

1 ответ1

7

Просто чтобы убедиться, что мы покрываем наши базы ... Вы пробовали процессы, изложенные здесь? https://stackoverflow.com/questions/7580508/getting-chrome-to-accept-self-signed-localhost-certificate

Раньше это работало для меня, но с сегодняшнего утра, после обновления до Chrome 58.0.3029.81, я также получаю следующую ошибку в консоли для самоподписанного сертификата, который работал в Ubuntu 16.04:

Certificate Error
There are issues with the site's certificate chain (net::ERR_CERT_AUTHORITY_INVALID).

РЕДАКТИРОВАТЬ:

Я только что имел успех с одним из методов по ссылке, на которую я ссылался выше. Он полностью распространяется на Chrome, потому что кажется, что с Chrome что-то изменилось, и он больше не работает правильно.

Чтобы сбросить сертификат с помощью клиента OpenSSL (возможно, нет необходимости, но в случае, если вы хотите быть очень тщательным):

$ echo QUIT | openssl s_client -connect $DOMAIN_TO_FETCH_FROM:443 | sed -ne '/BEGIN CERT/,/END CERT/p' > my-cert

Для установки сброшенного сертификата используется certutil . Если вы не сбросили свой сертификат с помощью openssl, замените my-cert на любое подходящее имя файла:

$ certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n my-cert -i my-cert

Проверьте установку сертификата с помощью certutil (если вы так склонны):

$ certutil -d sql:$HOME/.pki/nssdb -L

# Certificate Nickname                                         Trust Attributes
#                                                              SSL,S/MIME,JAR/XPI
#
# my-cert                                                      P,,  

Полностью закройте и перезапустите Chrome, и, возможно, вы найдете успех. Работал для меня на 58 и 59-бета.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .