关于在 java 8 下开启 TLS_RSA_WITH_3DES_EDE_CBC_SHA 支持 xp ie8 tls1.0 的正常访问

Posted 沙的空间

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于在 java 8 下开启 TLS_RSA_WITH_3DES_EDE_CBC_SHA 支持 xp ie8 tls1.0 的正常访问相关的知识,希望对你有一定的参考价值。

最近为 aioserver 增加了ssl支持。 在 myssl.com 上测试了一下,关于【客户端握手模拟】发现 ie8 xp tls1.0  这一项提示:握手失败 (服务器断开连接)

 

 

我又试了一下 baidu.com 和 taobao.com, 关于 ie8 xp tls1.0,可以握手成功,使用的【加密套件】: TLS_RSA_WITH_3DES_EDE_CBC_SHA

虽说 ie8 现在用的少,但国内应该还有一部分用户在使用,那就想办法让 java 8 支持 ie8 tls1.0 的访问吧。

 

我通过调用 sslEngine.getSupportedCipherSuites() 列出了 65 个可用的加密套件,但没有一个与 3DES 相关。

google 了一下,找到这篇资料: https://docs.oracle.com/javase/8/docs/technotes/guides/security/SunProviders.html 

大致意思是在 java 8 默认禁用【加密套件】:"SSL_RSA_WITH_3DES_EDE_CBC_SHA"。

接着就继续查找如何开启 "SSL_RSA_WITH_3DES_EDE_CBC_SHA",找到的答案是:

打开文件夹  {JAVA_HOME} / jre / lib / security 中的安全策略文件: java.security, 修改  jdk.tls.disabledAlgorithms 选项。

java8 的  jdk.tls.disabledAlgorithms 默认值:

jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 1024, \\
    EC keySize < 224, DES40_CBC, RC4_40, 3DES_EDE_CBC

 

为了开启 SSL_RSA_WITH_3DES_EDE_CBC_SHA, 将 3DES_EDE_CBC 注释掉:

jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 1024, \\
    EC keySize < 224, DES40_CBC, RC4_40

#, 3DES_EDE_CBC

这时调用 sslEngine.getSupportedCipherSuites() 列出了 76 个可用的加密套件,之前可用的加密套件数是 65 个。

多出来的12个可用的加密套件就是与 3DES 相关的加密套件:TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, ...

通过测试只需添加 SSL_RSA_WITH_3DES_EDE_CBC_SHA 就可以支持 xp ie8 tls1.0 的握手。

 

以上是关于关于在 java 8 下开启 TLS_RSA_WITH_3DES_EDE_CBC_SHA 支持 xp ie8 tls1.0 的正常访问的主要内容,如果未能解决你的问题,请参考以下文章

Java 8之后的那些新特性:局部变量var

Java 8 流短路

Java 关于assert

怎样在linux下修改 xml的内容

Linux下JAVA WEB服务器的搭建一(JDKMYSQLTOMCAT)

Linux下JAVA WEB服务器的搭建一(JDKMYSQLTOMCAT)