如何在JAVA 7u80客户端中启用TLSv1.2

如何在JAVA 7u80客户端中启用TLSv1.2,java,ssl,https,tls1.2,Java,Ssl,Https,Tls1.2,我们有一个java应用程序,它运行在java版本:1.7.0_80上,我们正在尝试使用jvm参数-Dhttps.protocols=TLSv1.1,TLSv1.2来启用TLSv1.2 -Djdk.tls.client.protocols=TLSv1.1,TLSv1.2-Ddeployment.security.TLSv1=false -Ddeployment.security.TLSv1.1=true -Ddeployment.security.TLSv1.2=true使用仅支持TLSv1.2的

我们有一个java应用程序,它运行在
java版本:1.7.0_80
上,我们正在尝试使用jvm参数
-Dhttps.protocols=TLSv1.1,TLSv1.2来启用
TLSv1.2
-Djdk.tls.client.protocols=TLSv1.1,TLSv1.2-Ddeployment.security.TLSv1=false -Ddeployment.security.TLSv1.1=true -Ddeployment.security.TLSv1.2=true
使用仅支持
TLSv1.2
的web服务。尽管jvm参数java客户端仍然使用
TLSv1
与web服务通信


有人能帮我一下吗?要使用TLSv1.2而无需任何代码更改,我需要进行任何jvm配置吗?

如我在评论中所述,无需任何代码更改,您至少需要

jdk.tls.client.protocols系统属性。要启用特定的SunJSSE 客户端上的协议,在中以逗号分隔的列表中指定它们 引号;然后在上禁用所有其他受支持的协议 客户。例如,如果此属性的值为 “TLSv1,TLSv1.1”,然后是 TLSv1和TLSv1.1在客户端上启用,而SSLv3、TLSv1.2和 在客户端上禁用了SSLv2Hello。这一财产已可用 自Java SE 7u95以来


自Java 6u121以来,同样的属性也可用,Java 6支持并实现了TLS 1.2。

可能重复我试图使其在我的情况下只进行配置更改,而不进行代码更改。据我所知,没有。您必须将Java 7更新为最新的补丁(我猜是131)或者修改代码。@SergeiSirik:不完全是重复的。在您提到的问题中,没有答案给出它不工作的真正原因:“jdk.tls.client.protocols系统属性。自JavaSE7U95以来,该属性一直可用。“它是一个用于webservice callJava 7u95的https协议,仅适用于业务用户。不适用于简单用户。我猜问题最初是关于如何在Java7U80中启用TLSv1.2。有人能帮助您在7u80中启用TLSv1.2吗?问题确实是针对7u80的,如果您无法升级,则需要更改代码(上面Sergei Sirik的链接给出的解决方案之一)。不幸的是,链接中提供的代码仅用于sql身份验证。不适用于windows身份验证。问题是关于启用TLS 1.2。如果您在Windows身份验证方面遇到困难,请提供代码并就此提出问题,或者询问ServerFault。Java 6u161似乎是“Java SE高级版本”,因此仅适用于付费客户。看见