Java Chrome/Firefox和Jetty HTTPS

Java Chrome/Firefox和Jetty HTTPS,java,google-chrome,firefox,ssl,jetty,Java,Google Chrome,Firefox,Ssl,Jetty,我有一个运行在Jetty 6上的应用程序,可以通过HTTPS访问。与IE11的连接是可行的,但与Firefox43或Google 40的连接是不可行的。 SSL跟踪显示Jetty和browser无法找到通用密码: %% Initialized: [Session-13, SSL_NULL_WITH_NULL_NULL] %% Invalidated: [Session-13, SSL_NULL_WITH_NULL_NULL] 783842035@qtp-1833323686

我有一个运行在Jetty 6上的应用程序,可以通过HTTPS访问。与IE11的连接是可行的,但与Firefox43或Google 40的连接是不可行的。 SSL跟踪显示Jetty和browser无法找到通用密码:

   %% 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\U DHE\U DSS\U带AES\U 128\U CBC\U 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中的RC4

    jdk.tls.disabledAlgorithms=RC4
但毫无用处,Chrome和FF仍然无法连接。 我已经没有主意了。有什么建议吗?TIA。

6号码头早就报废了

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

您必须坚持JVM级别的调整,或者编写一个自定义的
SslSelectChannelConnector
(抱歉,Jetty 7中引入了更简单的
SslContextFactory
概念)实现来完成密码和协议的必要包含和排除,以及新的TLS密码订购要求,以可靠地实现这一点

码头9.3.7.v20160115为。下一个版本,可能是9.3.8,将有必要的剩余调整,以支持最近的浏览器更改,但仅在Java8U72(或更高版本)下


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

使用诸如查找密码套件之类的工具检查您的服务器。很可能Jetty 6提供的密码由于安全原因现在已被弃用,Firefox和Chrome的新版本不再支持这些密码(请参阅SSL实验室的握手模拟部分)。我很难找到关于如何为Jetty 6提供额外密码套件的参考资料。