关于这个问题,网上的答案很多,总结一下:
1. 把jre/lib/security/java.security里jdk.tls.disabledAlgorithms中的3DES_EDE_CBC删除掉
2. 删除掉TLSv1、TLSv1.1、3DES_EDE_CBC
其实报错原因很清楚,翻译成大白话就是:
服务器选择的协议版本TLS10不被客户端首选项接受[TLS12]
意思就是我们的协议版本低了,讲道理新版的 JDK 不推荐使用旧的 TLSV1.0 的不安全协议的啊。
那就去看看jdk的版本协议。
which java
拿到jdk安装地址
版本区别
jdk8及以下是在 jre/lib/security/java.security
jdk11是在conf/security/java.security
打开java.security配置文件
vim java.security
找到 jdk.tls.disabledAlgorithms
如果看见的是这样的配置
jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA, DH keySize < 1024, \ EC keySize < 224, 3DES_EDE_CBC
那咱就老老实实的换 jdk 吧,这里连TLS版本都没有。
如果看见的是这样的配置
jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \ DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \ include jdk.disabled.namedCurves
那就简单了,既然说版本低了,那就把TLSv1删了就是了。
至于其他的要不要删? 结合我的修改测试,我的个人建议是不用。
如果还有问题的话,接着换jdk就好了。
顺带一提,记得检查java环境变量,免得多jdk环境下改错了配置文件,最好全卸载了只留下一个!
修改好配置环境后,还要记得刷新配置文件。