gpt4 book ai didi

java - 如何在 Java 7 中启用 TLS 1.2

转载 作者:IT老高 更新时间:2023-10-28 21:05:20 25 4
gpt4 key购买 nike

我正在尝试在使用 JBoss 6.4 和 Java 1.7 的 Web 应用程序中启用 TLS 1.2。我的应用程序环境中有 -Dhttp.protocols = TLSv1.2 但它似乎对我不起作用。

我可以做些什么来启用 TLS 1.2?

我写了一个简单的程序

context = SSLContext.getInstance("TLSv1.2");
context.init(null,null,null);
SSLContext.setDefault(context);
SSLSocketFactory factory = (SSLSocketFactory)context.getSocketFactory();
SSLSocket socket = (SSLSocket)factory.createSocket();
protocols = socket.getEnabledProtocols();

在应用程序中运行此程序后,TLS 1.2 将启用。我不想运行这个程序,但我想在应用程序启动期间直接启用它。有什么办法吗?

最佳答案

有很多建议,但我发现其中两个最常见。

回复。 JAVA_OPTS

在启动程序之前,我首先在命令行上尝试了 export JAVA_OPTS="-Dhttps.protocols=SSLv3,TLSv1,TLSv1.1,TLSv1.2" 但它对我不起作用。

回复。构造函数

然后我在启动类构造函数中添加了以下代码,它对我有用。

try {
SSLContext ctx = SSLContext.getInstance("TLSv1.2");
ctx.init(null, null, null);
SSLContext.setDefault(ctx);
} catch (Exception e) {
System.out.println(e.getMessage());
}

坦率地说,我不知道为什么 ctx.init(null, null, null); 但所有 (SSL/TLS) 对我来说都很好。

回复。 System.setProperty

还有一个选项:System.setProperty("https.protocols", "SSLv3,TLSv1,TLSv1.1,TLSv1.2");。它也将进入代码,但我没有尝试过。

关于java - 如何在 Java 7 中启用 TLS 1.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39157422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com