2016-02-05 5 views
1

У меня есть приложение, работающее на 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 все еще не удается подключиться. У меня кончились идеи. Какие-либо предложения? ТИА.

+0

Проверьте свой сервер с помощью инструмента, такого как https://www.ssllabs.com/ssltest/index.html, чтобы узнать, какие комплекты шифров предлагаются. Скорее всего, Jetty 6 предлагает шифры, которые теперь устарели по соображениям безопасности и больше не поддерживаются более новыми версиями Firefox и Chrome (см. Раздел моделирования рукопожатия SSL Labs). Мне сложно найти рекомендации о том, как поставлять дополнительные комплекты шифров Jetty 6. –

ответ

2

Jetty 6 is давно EOL (конец жизни).

Если вы придерживаетесь Jetty 6, знаете, что уровень настройки SSL/TLS вам не нужен в этой версии Jetty.

Вы должны либо придерживаться настроек уровня JVM, или писать пользовательские SslSelectChannelConnector (извините, тем легче SslContextFactory понятия были введены в Jetty 7) осуществление самостоятельно выполнить необходимые включения и исключения из шифров и протоколов, наряду с новыми требованиями к шифрам TLS, чтобы надежно снять это.

Jetty 9.3.7.v20160115 является almost up to date with the recent and upcoming browser changes. В следующем выпуске, вероятнее всего, 9.3.8, будут сохранены остальные настройки, необходимые для поддержки последних изменений браузера, но только под Java 8u72 (или новее).

Также обратите внимание, что, поскольку у вас включен протокол SSL/TLS на Jetty, вы должны постоянно обновлять свою версию Java, если не по какой-либо другой причине, чтобы не отставать от изменений в SSL/TLS за последние несколько лет года.

Смежные вопросы