首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Java中设置TLS1.2版本

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

Stack Overflow用户
提问于 2016-01-05 10:25:39
回答 2查看 28.2K关注 0票数 5

环境详情:

代码语言:javascript
复制
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->Advanced>检查TLS1.1和TLS1.2,未选中其余的旧版本。但是,在Wire软件中,我们仍然看到客户只在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软件中,我们看到客户机只在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.1jre/lib/security/java.securityjdk1.7.0_40/jre/lib/security/java.security中。但是,在Wire软件中,我们仍然看到客户只在TLSV1中与服务器对话。 参考链接:如何强制java服务器只接受tls 1.2并拒绝tls 1.0和tls 1.1连接

有人能告诉我们如何对客户端和服务器执行TLS1.2版本吗?

EN

回答 2

Stack Overflow用户

发布于 2016-07-29 16:36:57

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

为了配置我的服务器,我执行了以下操作:

  1. 修改文件server.xml at tag连接器的属性sslEnabledProtocols,如下所示:
代码语言:javascript
复制
<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. 我测试了我的整个应用程序,以避免不兼容。
票数 1
EN

Stack Overflow用户

发布于 2016-10-17 19:09:34

我正在使用一个Java命令应用程序,并且遇到了类似的问题。

来自甲骨文,java 7默认使用TLSv1,java 8默认使用TLSv1.2

尝试使用JRE8后,应用程序将自动使用TLSv1.2。以下是我的java信息:

代码语言:javascript
复制
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),但没有什么真正的改变。

在java8:jdk.tls.disabledAlgorithms= SSLv2Hello, SSLv3, TLSv1, TLSv1.1中使用第三种方式时,我能够看到运行时的变化。我无法使用java7使其工作。不确定这是否是同一个问题。您修改了应用程序正在运行的正确的JRE配置吗?或者您是否可以升级到java 8,然后再试一次?

Oracle需要提供更好的文档,祝您好运!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34609384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档