Я недавно обновил сертификат SSL на своем сайте, и, хотя изначально казалось, что сертифицированный установлен правильно, я был шокирован, обнаружив несколько часов назад, что соединение HTTPS больше не аутентифицируется правильно с некоторыми браузерами и версиями.
В настоящее время он выполняет проверку подлинности в следующих браузерах:
Но он НЕ аутентифицируется должным образом с помощью:
Сертификат имеет путь к сертификату GeoTrust Global CA > RapidSSL CA > secure.mydomain.com
.
Что могло бы объяснить эту проблему? Это проблема с установкой? Проблема с браузером? Проблема с сертификатом?
Как мне решить эту проблему?
У меня была такая же проблема - купил базовый сертификат SSL (от Network Solutions), установил его под nginx, и он отлично работал как в Opera, так и в IE, но не в Firefox 3.6.12. Вот как я решил проблему. Обратите внимание, что у меня есть доступ root / shell к моему VPS, я не знаю, есть ли у вас (по крайней мере, это может указать вашим провайдерам в правильном направлении).
Первым шагом в поиске решения было использование Qualys (согласно этот другой ответ). Он сказал мне, что цепь была неполной.
Во-вторых, я использовал OpenSSL для тестирования / отладки. Предполагая, что у вас есть доступ к оболочке, вы можете выполнить команду (q или CTRL-C для отключения):
openssl s_client -connect mysite.com:443
и вы, вероятно, увидите ошибку «не удается получить сертификат местного эмитента». Это также способ проверить, работает ли он в оболочке без запуска Firefox.
Некоторые браузеры могут пожаловаться на сертификат, подписанный известным центром сертификации, в то время как другие браузеры могут принять сертификат без проблем. Это происходит из-за того, что выдающий орган подписал сертификат сервера с помощью промежуточного сертификата, которого нет в базе сертификатов известных доверенных центров сертификации, которая распространяется с конкретным браузером. В этом случае орган предоставляет пакет связанных сертификатов который должен быть присоединен к подписанному сертификату сервера. Сертификат сервера должен появиться перед связанные сертификаты в объединенном файле
В моем случае я получил три файла от Network Solutions - mysite.com.crt
, AddTrustExternalCARoot.crt
, и NetworkSolutionsDVServerCA.crt
. Не было связка файл, но можно создать один из других сертификатов. После некоторых проб и ошибок я обнаружил, что мне нужно:
$ cat mysite.com.crt NetworkSolutionsDVServerCA.crt > mysite.com.chain.crt
Последним шагом было перенастроить мой сервер nginx с новым файлом:
server {
listen 443;
ssl on;
ssl_certificate /etc/ssl/certs/mysite.com.chain.crt;
ssl_certificate_key /etc/ssl/private/mysite.com.key;
server_name mysite.com;
# and so on
}
После получения нужных сертификатов в комплекте и перезапуска nginx, openssl
не сообщал об ошибках, Firefox получил страницу без проблем, а Qualys сообщила, что цепочка действительна.
Поскольку вы используете Apache, вам (или вашим провайдерам) необходимо настроить его для SSL с правильным расположением файлов, одно из которых отсутствует средний цепной файл:
<VirtualHost 192.168.0.1:443>
DocumentRoot /var/www/html2
ServerName www.yourdomain.com
SSLEngine on
SSLCertificateFile /path/to/your_domain_name.crt
SSLCertificateKeyFile /path/to/your_private.key
SSLCertificateChainFile /path/to/DigiCertCA.crt
</VirtualHost>
Попробуйте выполнить следующие тесты в своем домене:
Qualys: https://www.ssllabs.com/ssldb/index.html
DigiCert: http://www.digicert.com/help/
Я считаю, что оба очень удобны для устранения случайных проблем с сертификатами SSL.
Сертификат может содержать специальный Доступ к информации о полномочиях расширение (RFC-3280) с URL-адресом сертификата эмитента. Большинство браузеров могут использовать расширение AIA для загрузки отсутствующего промежуточного сертификата для завершения цепочки сертификатов. Но некоторые клиенты (старые и мобильные браузеры, OpenSSL) не поддерживают это расширение, поэтому они сообщают о таком сертификате как о ненадежном.
Вы можете решить неполная цепочка сертификатов вручную, объединив все сертификаты от сертификата до доверенного корневого сертификата (исключительно в этом порядке), чтобы предотвратить такие проблемы. Обратите внимание: доверенного корневого сертификата там не должно быть, так как он уже включен в хранилище корневых сертификатов системы.
Вы должны иметь возможность получать промежуточные сертификаты от издателя и объединять их самостоятельно. Я написал сценарий для автоматизации процедуры, он перебирает расширение AIA для вывода правильно связанных сертификатов. https://github.com/zakjan/cert-chain-resolver
Я использую это для Nginx и StartSSL, ему тоже нужен класс CA:
cat ssl.pem ca.pem sub.class1.server.ca.pem> server.pem
или
cat ssl.pem ca.pem sub.class2.server.ca.pem> server.pem
(согласно вашему классу)
У меня была такая же проблема с этими сообщениями об ошибках, шаги, которые я сделал, заключались в очистке кеша, добавлении безопасности в Интернете к надежному веб-сайту. у меня вроде ничего не работает ..
потом я нашел этот очень информативный сайт, такой простой и понятный ..
Решение 3. С этого сайта https://www.errorsolutions.tech/error/firefox-error-code-sec_error_unknown_issuer/