Для одного конкретного веб-сайта, с которым нам действительно нужно иметь возможность общаться, мы начинаем получать обычную ошибку рукопожатия 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 ответ1

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 поддерживает этот конкретный шифр, в то время как Firefox не поддерживает его. И Chrome, и Firefox предлагают TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, которые были удалены из набора шифров сервера, и поэтому они работали раньше.

Чтобы решить эту проблему, вы должны настроить свой сервер так, чтобы он принимал как можно больше безопасных шифров. См. Рекомендуемые конфигурации в Mozilla Wiki.

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