加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何强制java服务器只接受tls 1.2并拒绝tls 1.0和tls 1.1连接

发布时间:2020-12-15 00:01:03 所属栏目:Java 来源:网络整理
导读:我有一个在 Java 7上运行的https Web服务.我需要进行更改,以便该服务只接受tls1.2连接并拒绝ssl3,tls1.0和tls1.1. 我添加了以下java参数,使得tls1.2是最高优先级. -Dhttps.protocols=TLSv1.2 但它也接受来自java客户端的tls1.0连接.如果客户端也运行上面的ja
我有一个在 Java 7上运行的https Web服务.我需要进行更改,以便该服务只接受tls1.2连接并拒绝ssl3,tls1.0和tls1.1.

我添加了以下java参数,使得tls1.2是最高优先级.

-Dhttps.protocols=TLSv1.2

但它也接受来自java客户端的tls1.0连接.如果客户端也运行上面的java参数,连接是tls1.2,但如果客户端没有这个参数运行,连接是tls1.0.

我在jdk / jre / lib / security文件夹中的java.security文件中进行了一些操作.

我目前有以下禁用算法:

jdk.certpath.disabledAlgorithms= MD2,MD4,MD5,SHA224,DSA,EC keySize < 256,RSA keySize < 2048,SHA1 keysize < 224
jdk.tls.disabledAlgorithms=DSA,DHE,SHA1 keysize < 224

我正在使用java 7,更新79.我不倾向于拦截每个连接并检查tls版本.

我的服务器证书是使用RSA算法的MD5生成的2048位.

如果禁用的算法列表具有RSA代替RSA keySize< 2048,我得到的SSLHandShakeError与错误消息:没有密码套件的共同点. 我的测试程序是从以下URL运行http服务器:
http://www.herongyang.com/JDK/HTTPS-HttpsEchoer-Better-HTTPS-Server.html

请帮助如何使java只接受tls 1.2连接.

解决方法

我找到了一个解决方案.我设定了
jdk.tls.disabledAlgorithms= SSLv2Hello,SSLv3,TLSv1,TLSv1.1

在服务器上的文件jre / lib / security / java.security中.

设置完成后,服务器只接受TLS1.2连接并拒绝较低的安全协议版本.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读