java - 如何在Java中设置TLS1.2版本

标签 java security ssl jboss

环境细节:

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=真

    在启动脚本中给出,但在 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 中与服务器通信。

    引用链接: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。

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

  1. 在其属性 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" />
  1. 我测试了我的整个应用程序以避免不兼容。

关于java - 如何在Java中设置TLS1.2版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34609384/

相关文章:

java - 无法从外部 Jar 文件检索资源

android - 在 Jelly Bean 设备上读取 ActivityManager 日志?

c# - .NET 中安全身份的本地化

php - 使用 PHP 和 SSL 更新 svn

java - 我应该将这些字段放在 MVC 模型中的什么位置?

java - 编译android应用程序时出现问题

html - 如何在 http 站点的 iframe 中允许 https 内容?

java - 函数体作为方法调用的参数

security - https不需要加密数据?

java - 将 Firebase 函数的变量声明为最终变量。检查用户名和电子邮件是否存在