环境细节:
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=真
在启动脚本中给出,但在 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。
为了配置我的服务器,我做了以下事情:
- 在其属性 sslEnabledProtocols 的标记连接器处修改文件 server.xml 如下:
<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中设置TLS1.2版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34609384/