У меня есть приложение, работающее на Jetty 6, доступ к которому осуществляется через HTTPS. Подключение с IE 11 работает, но не Firefox 43 или Google 40. Трассировка SSL показывает, что Jetty и браузер не в состоянии найти общий шифр:Chrome/Firefox и Jetty HTTPS
%% Initialized: [Session-13, SSL_NULL_WITH_NULL_NULL]
%% Invalidated: [Session-13, SSL_NULL_WITH_NULL_NULL]
[email protected], SEND TLSv1.2 ALERT: fatal, description = handshake_failure
[email protected], WRITE: TLSv1.2 Alert, length = 2
[Raw write]: length = 7
0000: 15 03 03 00 02 02 28 ......(
[email protected], called closeSocket()
[email protected], handling exception: javax.net.ssl.SSLHandshakeException: no cipher suites in common
Однако, когда IE 11 используется выбранный шифр TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
:
%% Initialized: [Session-30, SSL_NULL_WITH_NULL_NULL]
%% Negotiating: [Session-30, TLS_DHE_DSS_WITH_AES_128_CBC_SHA256]
*** ServerHello, TLSv1.2
Поскольку Chrome предупреждает о RC4 шифров, когда он не может подключиться:
защищенное соединение не может быть установлено, потому что этот сайт использует >> неподдерживаемый протокол или набор шифров. Вероятно, это вызвано тем, что сервер >> нужен RC4, который больше не считается безопасным.
Я исключил RC4 в java.security, добавив следующее свойство
jdk.tls.disabledAlgorithms=RC4
, но безрезультатно, Chrome и FF все еще не удается подключиться. У меня кончились идеи. Какие-либо предложения? ТИА.
Проверьте свой сервер с помощью инструмента, такого как https://www.ssllabs.com/ssltest/index.html, чтобы узнать, какие комплекты шифров предлагаются. Скорее всего, Jetty 6 предлагает шифры, которые теперь устарели по соображениям безопасности и больше не поддерживаются более новыми версиями Firefox и Chrome (см. Раздел моделирования рукопожатия SSL Labs). Мне сложно найти рекомендации о том, как поставлять дополнительные комплекты шифров Jetty 6. –