在Java8及高版本以上的版本在调用ssl时会出现javax.net.ssl.SSLHandshakeException: No appropriate protocol
的异常。
I/O error on GET request for "https://..........":
No appropriate protocol (protocol is disabled or cipher suites are inappropriate);
nested exception is javax.net.ssl.SSLHandshakeException:
No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
解决办法如下: jdk安全策略禁止了
修改jre/lib/security/java.security
中的disabledAlgorithms
,删除SSLv3, TLSv1, TLSv1.1
,然后重启应用即可。在vim下,可以使用jdk.tls.disabledAlgorithms
快速查找。
# SSLv3, TLSv1, TLSv1.1,
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
把SSL,TSL那些删掉就可以了
参考:Java调用ssl出现异常:javax.net.ssl.SSLHandshakeException: No appropriate protocol_程序员星空的博客-CSDN博客_javax.net.ssl.sslexception