禁用Tomcat中的SSL / TLS重新协商

时间:2018-02-15 07:45:17

标签: java ssl tomcat7

这与SSL / TLS重新协商问题有关。我们使用Tomcat 7.0.47作为我们应用程序的Web服务器。 我尝试了许多不同的方法来禁用重新协商,但无法成功。 我们在Server.xml文件中启用了SSL,如下所示:

   
<Connector SSLEnabled="true" 
           clientAuth="false" 
           compressableMimeType="text/html,text/plain,text/xml,text/css,text/javascript,image/png,image/gif,image/jpeg,application/json" 
           compression="on" 
           compressionMinSize="2048" 
           connectionTimeout="15000" 
           debug="0" 
           disableUploadTimeout="true" 
           enableLookups="false" 
           keyAlias="SomeAlias" 
           keystoreFile="C:\.keystore" 
           keystorePass="SomePassword" 
           maxHttpHeaderSize="20480" 
           maxSpareThreads="100" 
           maxThreads="400" 
           minSpareThreads="25" 
           port="8443"
           protocol="HTTP/1.1"
           allowUnsafeLegacyRenegotiation=false            
           scheme="https" 
           secure="true" 
           sslProtocol="TLS" 
           tomcatAuthentication="false"/>

在这里,我尝试设置选项 allowUnsafeLegacyRenegotiation = false ,但服务器无法以此设置启动。

1 个答案:

答案 0 :(得分:0)

不幸的是,Oracle的当前 JSSE实现并没有为您的问题提供任何解决方案。但是您可以运行旧的Java(Java 6更新19/20/21),如JSSE Reference Guide table 7中所述,因为这些版本称为&#34;阶段1修复&#34;允许完全删除重新协商支持。

考虑到旧的Java版本存在其他问题并且您可能不想运行它们,最安全的是仅允许最新的重新协商(RFC 5746)。为此,如JSSE Reference Guide table 9中所述,将这两个系统属性设置为false:allowLegacyHelloMessages,allowUnsafeRenegotiation。 并删除不再有用的allowUnsafeLegacyRenegotiation连接器属性。

现在是时候结束这个问题,但是我在我身边做了一些测试,这些测试非常棘手,需要数小时的工作。欢迎赏金。