Chrome / Firefox和Jetty HTTPS

时间:2016-02-05 20:11:13

标签: java google-chrome firefox ssl jetty

我有一个在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。

1 个答案:

答案 0 :(得分:2)

Jetty 6很久以前 EOL(生命终结)。

如果您坚持使用Jetty 6,请知道您所需的SSL / TLS调整级别在该版本的Jetty中不存在。

你要么必须坚持使用JVM级别调整,要么编写自定义SslContextFactory(抱歉,在Jetty 7中引入了更简单的{{1}}概念)实现自己的必要包括并且不包括密码和协议,以及新的TLS密码订购要求可靠地解决此问题。

Jetty 9.3.7.v20160115是strict weak ordering。下一个版本,可能是9.3.8,将进行必要的剩余调整以支持最近的浏览器更改,但仅限于Java 8u72(或更新版本)。

另外值得注意的是,由于你在Jetty上启用了SSL / TLS,你必须保持你的Java版本是最新的,如果没有其他原因那么在过去的几年中跟上SSL / TLS的变化