Java Chrome/Firefox和Jetty HTTPS
我有一个运行在Jetty 6上的应用程序,可以通过HTTPS访问。与IE11的连接是可行的,但与Firefox43或Google 40的连接是不可行的。 SSL跟踪显示Jetty和browser无法找到通用密码: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
%% 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提供额外密码套件的参考资料。