微信退款报javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is d

213 阅读1分钟

在用户新的环境中微信退款报javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)。 我们都知道微信支付的退款接口使用的是双向证书认证,在发送请求的时候同时要把我们自己的微信CA证书一起发送到微信服务器。

carbon.png

我们这个supportedProtocols参数一开始只有TLSv1,后来我把TLSv1.1TLSv1.2加入,成功退款,也可以直接不指定该参数,传null即可。 后来还是感觉这个不是问题的根本原因,因为这套代码我们还在其他很多项目使用,目前均没有问题,后来查到一个说法是我们自己的jdkTLSv1这个版本给禁止了,查看xxx/openjdk/jre/lib/security下边的java.security文件,发现 jdk.tls.disabledAlgorithms这个属性果然有TLSv1,而且还有TLSv1.1

image.png 删除TLSv1 即可