java - 在 JDK 7 中默认启用 TLSv1.2

标签 java security jvm protocols tls1.2

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

我浏览过一些帖子,例如 this one here这表示客户端应用程序必须在启动脚本中指定他们想要使用哪种安全协议(protocol),或者通过 java 编程来执行此操作。

有什么方法可以将默认启用的协议(protocol)更改为 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();

最佳答案

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

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

关于java - 在 JDK 7 中默认启用 TLSv1.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44255157/

相关文章:

java - 线程 “main” java.lang.NoClassDefFoundError中的异常:org/apache/commons/cli2/Option

android - 应用认证

iphone - 如何在 iOS 应用中安全地包含服务器凭据

php - 用户提交的 HTML 带来的安全风险

java - hello world 应用程序如何在 java 后台工作

java - 与已用百分比相比,堆大小意外地大

java - 计算 Java 服务器中 GC 时间的百分比

java - 我想不明白

java - 重复键 org.jetbrains.jps.model.module.impl.JpsModuleImpl

java - Callable 接口(interface)是一个线程吗?它工作时我无法运行任何东西