我有一个运行在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
然而,当使用IE11时,所选的密码是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密码:
无法建立安全连接,因为此站点使用>>unsupported协议或密码套件。这很可能是在>>server需要不再被认为安全的RC4时造成的。
通过添加以下属性,我在RC4中排除了java.security
jdk.tls.disabledAlgorithms=RC4
但没有结果,Chrome和FF仍然无法连接。我的想法用完了。有什么建议吗?蒂娅。
发布于 2016-02-05 12:41:34
Jetty 6是很久以前的EOL (生命的终结)。
如果您坚持使用Jetty 6,那么要知道,您需要的SSL/TLS调整级别并不存在于Jetty的那个版本中。
您必须坚持JVM级别的调整,或者编写一个自定义的SslSelectChannelConnector
(抱歉,Jetty 7中引入了更容易的SslContextFactory
概念)实现,以完成必要的包含和排除密码和协议,以及新的TLS密码器排序需求,以可靠地完成这一任务。
Jetty 9.3.7.v20160115是与最近和即将到来的浏览器更改几乎是最新的。。下一个版本(可能是9.3.8 )将有支持最近浏览器更改所需的其余调整,但只在Java 8u72 (或更新版本)下进行。
还需要注意的是,由于您在Jetty上启用了SSL/TLS,因此您必须保持Java的最新版本,如果没有其他原因,那么就必须跟上过去几年中SSL/TLS的变化。
https://stackoverflow.com/questions/35232692
复制相似问题