
Для одного конкретного веб-сайта, с которым нам действительно необходимо иметь возможность взаимодействовать, мы начинаем получать обычную ошибку установления SSL-соединения:
ERR_SSL_VERSION_OR_CIPHER_MISMATCH
Однако я уже подтвердил, что это не проблема SSLv3. Сайт соответствует PCI, поэтому он использует очень современные настройки SSL. openssl
сообщает следующее:
SSL-Session:
Protocol : TLSv1.2
Cipher : ECDHE-RSA-AES128-SHA256
Единственное изменение, которое было сделано в последнее время, — это удаление нескольких шифров из их набора шифров; они специально отключили TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
и TLS_RSA_WITH_AES_128_CBC_SHA
на стороне сервера.
Чего я не могу понять, так это почему Chrome жалуется на эту конкретную версию протокола и набор шифров; мне кажется, что все в порядке. Сайт открывается без проблем в последних версиях IE (и информация о странице IE соответствует тому, что openssl
сообщает ios), но не открывается в Chrome и Firefox.
Есть ли способ узнать, какие настройки протокола/шифра установлены в Chrome?думаетон получил их с сервера или почему он решил, что они недействительны?
решение1
Есть ли способ узнать, какие настройки протокола/шифра Chrome, по его мнению, получил от сервера?
TLS так не работает. В TLS клиент начинает рукопожатие и включает все шифры, которые он готов принять от сервера. Если сервер не находит совпадений со своими собственными шифрами, то он в лучшем случае уведомит клиента об этой конкретной проблеме, а в худшем просто закроет соединение.
В вашем случае вы получаете ERR_SSL_VERSION_OR_CIPHER_MISMATCH, что означает, что сервер не поддерживает ни один из шифров, предлагаемых клиентом. Я не знаю, какие шифры вы настроили на сервере, но SSLLabs показывает вам, какиешифры предлагаются Chrome. И ECDHE-RSA-AES128-SHA256 (TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) не является одним из них.
Это может работать с другими браузерами, поскольку они предлагают серверу другие шифры, например:IE 11 на Windows 10поддерживает этот конкретный шифр, покаFire Foxне поддерживает его. И Chrome, и Firefox предлагают TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, которые были удалены из набора шифров сервера, и поэтому раньше это работало.
Чтобы решить эту проблему, вам следует настроить сервер на прием как можно большего количества пакетов.безопасныйшифры. СмотретьРекомендуемые конфигурациина Mozilla Wiki.