【问题标题】:Will SSLContext.getInstance("TLS") supports TLS v1.1 and TLS v1.2 also?SSLContext.getInstance("TLS") 是否也支持 TLS v1.1 和 TLS v1.2?
【发布时间】: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


【解决方案1】:

要使用 TLSv1.2,请尝试使用以下代码:

SSLContext sslContext = SSLContext.getInstance("TLSv1.2");
sslContext.init(null, null, null);

【讨论】:

  • 我可以知道如何将此sslContext 应用到我的RestTemplate 中吗?我正在使用 Spring 3.0.x 版本,继续尝试但无法获得它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-02
  • 2021-12-02
  • 2016-06-24
  • 1970-01-01
  • 2012-09-20
相关资源
最近更新 更多