如何在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版本:

  1. 控制面板 – >程序 – > Java – >高级选项卡 – >高级安全设置选中了TLS1.1和TLS1.2并取消选中剩余的旧版本。 但仍然在Wire shark软件中,我们看到客户端只与TLSV1中的服务器通信。

  2. -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

  3. jdk.tls.disabledAlgorithms= SSLv2Hello, SSLv3, TLSv1, TLSv1.1

    jre/lib/security/java.securityjdk1.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。

为了配置我的服务器,我做了以下事情:

  1. 修改了标签Connector上的文件server.xml,其属性为sslEnabledProtocols,如下所示:
  
  1. 我测试了我的整个应用程序以避免没有兼容性。

我正在使用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需要提供更好的文档,祝你好运!