【发布时间】:2015-07-02 17:03:39
【问题描述】:
在我的 java 代码中,我正在使用命令创建一个 SSL 上下文实例
SSLContext ctx = SSLContext.getInstance("TLS");
但在我的 tomcat 服务器中,我正在设置 TLSv1.2,但我遇到了握手错误。
我们如何使用这种方法支持所有 TLS 协议,就像在 cpp 中我们有支持所有协议的 SSLV23 客户端方法。
【问题讨论】:
-
您使用哪个版本的 Java?
-
SSLContext ctx = SSLContext.getInstance("TLSv1.2");支持所有协议 :)
-
SSLContext ctx = SSLContext.getInstance("TLS");- 情况变得更糟。在 Java 8 及更低版本上,您还可以获得 SSLv3。向 Oracle 提交了错误报告,但由于其设计原因,它被关闭为“无法修复”。另见Which Cipher Suites to enable for SSL Socket? -
你有 bug id 吗?
-
@mahan07
SSLContext.getInstance("TLSv1.2")不一定支持所有协议 - 它取决于 JVM。在我的情况下,像这样配置的类无法连接到使用在 IBM JVM 1.7.0 上运行的 TLSv1 的 Apache 服务器,而它可以连接在 Oracle JVM 1.7.0 上运行。
标签: java tomcat ssl openssl poodle-attack