【问题标题】:Enabling TLSv1.2 as default in JDK 7在 JDK 7 中默认启用 TLSv1.2
【发布时间】:2017-10-30 12:15:09
【问题描述】:

我想启用 TLSv1.2 作为 jdk7 中客户端的默认协议。我可以看到 java 7 支持 TLS v1.1、1.2 但默认启用的是 TLSv1.0。

我看过this one here 之类的帖子,其中说客户端应用程序必须在启动脚本中指定他们想要使用的安全协议,或者通过 java 编程来执行此操作。

那么有什么办法可以将默认启用的协议更改为 TLSv1.2,这样在所有正在运行的客户端应用程序中都不需要更改。

这是我们用来启动 SSL 连接的代码。

//create the SSLContext with your key manager and trust
//manager, and get your socket factory from the context:
SSLContext ctx = SSLContext.getInstance("SSL");
ctx.init(km, tm, null);
SSLSocketFactory factory = ctx.getSocketFactory();

【问题讨论】:

  • 在 JDK 中启用 TLSv1.2 是一个广义的术语。您可以在帖子中添加启动 SSL 连接的代码吗?还有你如何启动你的客户端应用程序? (如果您的客户端直接与服务器通信并且您没有服务器上的控制器,则无法将这种神奇的代码放入正在运行的应用程序中(无需重新启动))
  • @JigarJoshi 感谢您的回复。我添加了代码。客户端应用程序部署在 weblogic 托管服务器上,因此要重新启动应用程序,我们需要重新启动托管服务器。
  • 看起来像 superuser.com/questions/747377/… 的副本
  • 您使用的确切 Java 版本是什么? (OpenJDK 还是 Oracle JDK?什么构建?)为什么不升级到 JDK 8?

标签: java security jvm protocols tls1.2


【解决方案1】:

在 Main 的入口点将其更改为 this

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

【讨论】:

  • 我们不能将 java 的默认设置更改为 TLSv1.2
  • 对于 JDK 7,如果您使用 SSLSocketConnection,我不知道有其他方法可以处理它。除了创建一个不适合您的 SSL 代理
猜你喜欢
  • 2019-04-07
  • 2023-01-10
  • 2015-05-28
  • 2015-12-22
  • 1970-01-01
  • 1970-01-01
  • 2013-02-02
  • 2021-09-25
相关资源
最近更新 更多