У меня есть сервер Tomcat 7 на Ubuntu 14.04 (Java OpenJDK 1.7), который работает нормально уже более года, без проблем. Несколько месяцев назад он перестал быть доступен с Chrome, я решил это, переключившись на Firefox для доступа к этому конкретному сайту. Недавно (несколько дней) назад он перестал быть доступен в Firefox.
Я посоветовался этот вопрос это в основном та же проблема, что и у меня, но это решение по какой-то причине больше не работает. По состоянию на вчерашний день и Chrome 41, и Firefox 37 не отображают мой сайт. В Chrome я получаю такой ответ:
A secure connection cannot be established because this site uses an unsupported protocol.
Error code: ERR_SSL_VERSION_OR_CIPHER_MISMATCH
В Firefox я получаю следующее:
Cannot communicate securely with peer: no common encryption algorithm(s). (Error code: ssl_error_no_cypher_overlap)
Я перепробовал все комбинации протоколов, которые ответы и ссылки рекомендуют для Tomcat 7, но без кубиков. Похоже, что производители браузеров ужесточили безопасность настолько, что эти параметры больше не работают:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslEnabledProtocols = "TLSv1,TLSv1.1,TLSv1.2" />
Целый день экспериментировал с разными комбинациями параметров и безуспешно. Мне также удалось воспроизвести проблему на двух разных установках Tomcat (вторая в Windows), поэтому я почти уверен, что это не проблема компьютера.
Прежде чем я откажусь и установлю Java 8 и Tomcat 8, которые уничтожат остаток моих выходных, я подумал, что спрошу здесь о возможных решениях.
Для отладки ситуации вы можете использовать инструменты командной строки openssl, особенно openssl s_client
. Добавляя опции -tls1
, -tls1_1
и -tls1_2
вы можете проверить совместимость для протоколов, а с -cipher [cipherlist]
для шифров. Например
openssl s_client -connect example.com:443 -tls1
Вы получите подробную информацию и, возможно, предупреждения о соединении, сертификате и функциях (например, повторное согласование, сжатие и т. Д.). Это поможет устранить проблему.
чтобы включить Tls в tomcat, добавьте этот параметр sslEnabledProtocols = "TLSv1.X" в раздел Connector файла server.xml tomcat в папке tomcat / conf /. например: чтобы настроить TLSv1.1, следуйте приведенной ниже конфигурации.
<Connector port="8443"
protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
keystoreFile="ssl/.keystore" keystorePass="changeit"
clientAuth="false" sslProtocol="SSL" sslEnabledProtocols="TLSv1.1" />
перезапустить сервер