【发布时间】:2016-05-15 22:25:37
【问题描述】:
我有一个在 Jetty 6 上运行的应用程序,它通过 HTTPS 访问。与 IE 11 连接有效,但不适用于 Firefox 43 或 Google 40。 SSL 跟踪显示 Jetty 和浏览器无法找到通用密码:
%% Initialized: [Session-13, SSL_NULL_WITH_NULL_NULL]
%% Invalidated: [Session-13, SSL_NULL_WITH_NULL_NULL]
783842035@qtp-1833323686-4, SEND TLSv1.2 ALERT: fatal, description = handshake_failure
783842035@qtp-1833323686-4, WRITE: TLSv1.2 Alert, length = 2
[Raw write]: length = 7
0000: 15 03 03 00 02 02 28 ......(
783842035@qtp-1833323686-4, called closeSocket()
783842035@qtp-1833323686-4, 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 时引起的,这不再被认为是安全的。
我通过添加以下属性在 java.security 中排除了 RC4
jdk.tls.disabledAlgorithms=RC4
但无济于事,Chrome和FF仍然无法连接。 我已经没有想法了。有什么建议? TIA。
【问题讨论】:
-
使用诸如ssllabs.com/ssltest/index.html 之类的工具检查您的服务器以查找提供的密码套件。出于安全原因,Jetty 6 提供的密码可能已被弃用,并且新版本的 Firefox 和 Chrome 不再支持(请参阅 SSL Labs 的握手模拟部分)。我很难找到有关如何为 Jetty 6 提供额外密码套件的参考资料。
标签: java google-chrome firefox ssl jetty