Самоподписанный сертификат CA, который используется с веб-сайтом, работает нормально с Firefox 52.9 и IE 11 на Windows 7. Однако Chrome 57 настаивает на том, чтобы красный «! Не доверял» рядом с URL-адресами https. Несмотря на это, эти URL работают. Мне нужно избавиться от этого предупреждения, так как оно напугало пользователей. (На сайте нет ничего, что могло бы быть вредным - ни финансовой информации, ни медицинской информации, ничего подобного.) Это странно, потому что Chrome хранит сертификат точно в том же месте, что и IE, и если сертификат хранится в ChromeIE может использовать его без проблем. (Но не наоборот.)
В chrome нажмите на красное предупреждение, и оно говорит, что сертификат недействителен, но ничто в деталях сертификата не помечено как имеющее проблему. Сравнивая сведения об одном и том же сертификате в IE и Chrome, в одном и том же диалоговом окне Windows, как ни странно, они различаются неуловимо. Это не имеет смысла для меня, так как это тот же файл, или, по крайней мере, так должно быть! На вкладке Details (все остальные поля одинаковы):
IE Chrome
Version V3 V1
Serial Number (hex) 2
Subject Key ID (hex) no such field
Authority Key (hex) no such field
Basic Constr. (data) no such field
thumbprint (hex) (different hex)
Я попытался экспортировать сертификат из IE и импортировать его в Chrome и увидел то же самое, что и раньше. Это похоже на то, как два браузера по-разному интерпретируют сертификат.
Учитывая, как были сделаны сертификаты ЦС и сервера (см. Ниже), кто-нибудь может объяснить, почему это происходит, и как настроить Chrome, чтобы он не жаловался иликак сделать самозаверяющие сертификаты, которые он примет? Спасибо.
Сертификат CA был создан следующим образом:
openssl genpkey -algorithm RSA -out ca.key \
-pass pass:random_string_of_characterss -pkeyopt rsa_keygen_bits:2048
openssl req -new -x509 -days 7300 -key ca.key -out ca.crt <<EOD
US
California
Pasadena
(not shown)
(not shown)
(not shown, is part of organization name)
(not shown)
EOD
Сертификат сервера был создан с помощью:
openssl genpkey -algorithm RSA -out server.key \
-pass pass:different_random_string -pkeyopt rsa_keygen_bits:2048
openssl req -new -key server.key -out server.csr <<EOD
US
California
Pasadena
(not shown, matches CA field)
(not shown, matches CA field)
(not shown, is fully qualified IP name of machine)
(not shown, matches CA field)
EOD #the two blank lines before this are intentional
#increment the CERT
openssl x509 -req -days 7300 -in server.csr -CA ca.crt \
-CAkey ca.key -set_serial 02 -out server.crt
cp server.key server.key.secure
openssl rsa -in server.key.secure -out server.key
#removed password
Обратите внимание, что имя машины иимя, используемое в сертификате, на самом деле является псевдонимом DNS. Основная запись похожа на «foo.bar.school.edu», а используемая - на who.bar.school.edu. Они оба разрешают один и тот же IP-адрес. Не похоже, что это должно иметь значение, но, может быть, это имеет значение?
Подробнее ... Нашли эту страницу:
https://medium.com/@tbusser/creating-a-browser-trusted-self-signedssl-certificate-2709ce43fd15
, так что попробовал это.
cat >v3.ext <<'EOD'
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = *.bar.school.edu
DNS.2 = *.school.edu
EOD
#increment the count and use the extfile
openssl x509 -req -days 7300 -in server.csr -CA ca.crt \
-CAkey ca.key -set_serial 03 -out server.crt -extfile v3.ext
/usr/bin/cp server.crt ../ssl.crt
apachectl restart
Это сделало Chrome счастливым, но IE это не понравилось. С этим сервером все верхние окна IE были розовыми, а в центре - «ошибка сертификата».
Итак, что за магическое заклинание в наши дни делает сертификат CA и сертификат неподписанного сервера, что все эти браузеры будут принимать ????