在JDK 7中启用TLSv1.2作为默认设置

问题描述:

我希望启用TLSv1.2作为jdk7中客户端的默认协议。我可以看到java 7支持TLS v1.1,1.2,但默认启用的是TLSv1.0。在JDK 7中启用TLSv1.2作为默认设置

我已经经历了一些像this one here这样的帖子,它说客户端应用程序必须在启动脚本中指定他们想要使用哪种安全协议,或者其他方式是通过java编程。

那么有什么方法可以将默认启用的协议转换为TLSv1.2因此,在所有运行的客户端应用程序中都不需要chnage。

如果您在投票之前需要其他详细信息,请告诉我。我已经足够搜索,但无法找到解决方案。

这是我们用来启动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(); 

感谢, 尼基尔

+0

切入点在JDK启用TLSv1.2工作是一个广义的术语。你可以在你的帖子中添加代码来启动SSL连接吗?还有,你如何启动你的客户端应用程序? (如果您的客户端直接与服务器通话并且您没有控制器通过服务器),那么无法将这种代码魔法放入正在运行的应用程序中(无需重新启动) –

+0

@JigarJoshi感谢您的回复。我添加了代码。客户端应用程序部署在weblogic托管服务器上,以便重新启动应用程序时重新启动托管服务器。 –

+0

看起来像https://superuser.com/questions/747377/enable-tls-1-1-and-1-2-for-clients-on-java-7的副本 – eis

改成这样在你的主要

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

如果您使用SSLSocketConnection,我们不能将java的默认值设置为TLSv1.2 –

+0

对于JDK 7,我不知道其他方式来处理它。除了创建一个不适合你的SSL代理 –