如何在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中的服务器通信.

参考链接:How to force java server to accept only tls 1.2 and reject tls 1.0 and tls 1.1 connections

有人可以告诉我们如何为客户端和服务器强制执行TLS1.2版本.

解决方法:

我正在使用Tomcat 6和java 7,因为java 6及更早版本不支持TLS1.2.

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

>修改了标签Connector上的文件server.xml,其属性为sslEnabledProtocols,如下所示:

<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
           maxThreads="450" scheme="https" secure="true"
           keystoreFile="<your_keystore>" keystorePass="<somepasswd>" clientAuth="false"
           keyAlias="tomcat" sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2"
           URIEncoding="UTF-8" maxHttpHeaderSize="32768" 
           ciphers = "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
                      TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,
                      TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA" />

>我测试了我的整个应用程序以避免没有兼容性.

上一篇:识别java堆栈跟踪中最旧的线程


下一篇:试图导致java.lang.OutOfMemoryException