2

将嵌入式 Tomcat 8 与 Java 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
4

1 回答 1

4

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

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

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

-Djdk.tls.disabledAlgorithms=

(注意那里没有价值。)

您还需要执行您在上面已经完成的相同类型的操作,在其中设置sslEnabledProtocolsand sslProtocol,但同样,请不要禁用更高级别的协议

更新 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 和 Tomcat 9.0.0.MR23 起将不再被列入黑名单。

于 2016-01-30T20:38:49.440 回答