在java8中禁用TLSv1.0

时间:2016-12-16 09:59:08

标签: java security ssl java-8 tls1.2

我试图在Java 8中禁用TLSv1.0

我已将TLSv1.0包含在以下行中,如下所示:JRE / lib / security / java.security

jdk.tls.disabledAlgorithms = SSLv3,RC4,MD5withRSA,DH,TLSv1.0

仍然,我在测试时从TLSv1.0获取了密码,但是当我配置其他版本(如TLSv1.1)时,我能够成功删除相应的密码

这可能是什么问题?

有没有办法删除JRE级别的特定密码?

4 个答案:

答案 0 :(得分:2)

对于第一部分问题我可以通过修改如下所示的行来禁用TLSv1.0(使用TLSv1而不是TLSv1.0)

jdk.tls.disabledAlgorithms = SSLv3,RC4,MD5withRSA,DH,TLSv1

但我仍然想知道,有没有可能我可以在JRE级别禁用整个密码套件,例如,删除3个以下密码

.ipa

答案 1 :(得分:1)

您可以通过设置java选项

强制客户端使用特定协议
-Djdk.tls.client.protocols=TLSv1.1,TLSv1.2

或者,如果要查找禁用特定密码,您可以尝试设置

jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024

在java.security文件中

答案 2 :(得分:1)

用TLSv1替换TLSv1.0,我测试没问题 jdk.tls.disabledAlgorithms = SSLv3,RC4,MD5withRSA,DH,TLSv1

测试方法 openssl s_client -connect ip:port -tls1

答案 3 :(得分:0)

您可以使用命令行参数来禁用TLSv1和所需的任何密码,例如:

java -Djava.security.properties=disabled_tlsv1.properties

文件disabled_tlsv1.properties包含要禁用的密码列表,并且还支持协议,例如TLSv1。我在下面列出的其余密码对于TLSv1.1被认为是不安全的。

这仍然使TLSv1.1仍然可以使用,因为它的某些密码仍处于启用状态。请注意,您也可以在JRE本身中执行此操作,以影响整个服务器(如问题本身所述)。

disabled_tlsv1.properties

jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 768,TLSv1,TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_3DES_EDE_CBC_SHA,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_RC4_128_MD5,TLS_RSA_WITH_RC4_128_SHA

一个显示此消息的git存储库,以及如何验证TLSv1已禁用can be found here