如何在Tomcat 8和Java 8中重新启用SSLv3

时间:2016-01-29 18:27:14

标签: java tomcat ssl sslv3

在Java 8中使用嵌入式Tomcat 8,我无法重新启用SSLv3协议。我无法通过Internet选项访问Web应用程序 - >选中SSLv3的高级设置和未选中的所有其他设置(SSLv2,TLS1.0,TLS1.1,TLS1.2)。我试过像这样设置SSL协议:

httpsConnector.setAttribute("sslProtocol", "SSLv3");

我也尝试过这样设置SSL协议:

httpsConnector.setAttribute("sslEnabledProtocols", "SSLv3");

我还将此行添加到deployment.properties文件中以在JRE 8中启用SSLv3

deployment.security.SSLv3=true

1 个答案:

答案 0 :(得分:4)

最近的JRE禁用了SSLv3,这是正确的:它应该是一个应该避免的破坏协议。但是,某些环境绝对需要SSLv3的支持,并且可以这样做。

首先,您永远不应禁用TLSv1,TLSv1.1和TLSv1.2等更高级别的协议。相反,将SSLv3添加到这些协议中,以便具有更好安全性的客户端仍然可以使用更高级别的协议。

为了在JVM中重新启用SSLv3,您可能需要设置此系统属性,可能是在JVM启动时:

-Djdk.tls.disabledAlgorithms=

(注意那里没有价值。)

您还需要执行上面已经完成的相同类型的操作,您可以设置sslEnabledProtocolssslProtocol,但是,再次请不要禁用更高级别的协议

更新2017-06-21

对于Tomcat 8.5和9.0,SSLv3已被硬编码为禁用,需要源补丁并重新构建才能重新启用它,至少通过Tomcat 8.5.15和Tomcat 9.0 .0.M21。目前有一些关于在Tomcat 8.5和9.0中删除该禁令的讨论。

更新2017-06-22

SSLv3将不再列入Tomcat 8.5.17 and Tomcat 9.0.0.MR23列入黑名单。