这与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 ,但服务器无法以此设置启动。
答案 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连接器属性。
现在是时候结束这个问题,但是我在我身边做了一些测试,这些测试非常棘手,需要数小时的工作。欢迎赏金。