如何在Java中设置TLS1.2版本
环境细节:
java version "1.7.0_40" Java(TM) SE Runtime Environment (build 1.7.0_40-b43) Java HotSpot(TM) 64-Bit Server VM (build 24.0-b56, mixed mode).
我们正在使用jboss-4.2.3.GA和使用ejb的胖客户端。
我们尝试通过以下方式设置TLS1.2版本:
-
控制面板 – >程序 – > Java – >高级选项卡 – >高级安全设置选中了TLS1.1和TLS1.2并取消选中剩余的旧版本。 但仍然在Wire shark软件中,我们看到客户端只与TLSV1中的服务器通信。
-
-Ddeployment.security.SSLv2Hello=false -Ddeployment.security.SSLv3=false -Ddeployment.security.TLSv1=false -Ddeployment.security.TLSv1.1=true -Ddeployment.security.TLSv1.2=true
在启动脚本中给出,但在Wire shark软件中,我们看到客户端仅与TLSV1中的服务器通信。
参考链接: https : //superuser.com/questions/747377/enable-tls-1-1-and-1-2-for-clients-on-java-7
-
jdk.tls.disabledAlgorithms= SSLv2Hello, SSLv3, TLSv1, TLSv1.1
在
jre/lib/security/java.security
和jdk1.7.0_40/jre/lib/security/java.security
。 但仍然在Wire shark软件中,我们看到客户端只与TLSV1中的服务器通信。参考链接: 如何强制java服务器只接受tls 1.2并拒绝tls 1.0和tls 1.1连接
有人可以告诉我们如何为客户端和服务器强制执行TLS1.2版本。
我正在使用Tomcat 6和Java 7,因为java 6及更早版本不支持TLS1.2。
为了配置我的服务器,我做了以下事情:
- 修改了标签Connector上的文件server.xml,其属性为sslEnabledProtocols,如下所示:
- 我测试了我的整个应用程序以避免没有兼容性。
我正在使用Java命令应用程序,并遇到类似的问题。
从Oracle ,java 7默认使用TLSv1,java 8默认使用TLSv1.2
在我使用JRE8尝试应用程序后,应用程序开始自动使用TLSv1.2。 这是我的java信息:
java version "1.8.0_92" Java(TM) SE Runtime Environment (build 1.8.0_92-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.92-b14, mixed mode)
我继续搜索如何配置Java8的运行时TLS版本,我尝试了你的第一种-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2
方式(也包括-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2
)并没有真正改变。
在使用java8的第三种方式时,我能够看到运行时更改: jdk.tls.disabledAlgorithms= SSLv2Hello, SSLv3, TLSv1, TLSv1.1
。 我无法使用java7使其工作。 不确定这是否与您有同样的问题。 您是否修改了运行应用程序的正确JRE配置? 或者,如果您可以升级到Java 8并再试一次?
Oracle需要提供更好的文档,祝你好运!