jdk8调用第三方接口出现握手失败(Received fatal alert: handshake_failure)

cnblogs 2024-09-06 11:09:00 阅读 92

1、记一次错误

1、问题出现的场景

​ 1、 通过java代码调用第三方接口,出现这个ssl认证,握手失败。我的jdk版本是1.8_131版本出现的

<code>错误提示: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure

​2、我通过curl命令在服务器上调用是可以的,能完整的返回数据。以及浏览器访问都可以能拿到返回的数据。

2、常见的问题
1、使用AES加解密
    <li>异常1:

java.security.InvalidKeyException: Illegal key size or default parameters

  • 异常2:

java.lang.SecurityException: JCE cannot authenticate the provider BC

2、安全性机制导致的访问https会报错

Received fatal alert: handshake_failure; nested exception is javax.net.ssl.SSLHandshakeException:

Received fatal alert: handshake_failure,accessUrl

这是因为某些国家的进口管制限制,JDK默认的加解密有一定的限制。

3、解决思路:

比如默认不允许 256 位密钥的 AES 加解密,解决方法就下载官方JCE无限制强度加密策略文件,覆盖即可。

​官网提供的下载版本:

JDK6的下载地址

JDK7的下载地址

JDK8的下载地址

4、覆盖JCE

1、在上数网站下载对应的版本jce文件

2、进入JDK安装目录下的(改成自己的安装目录)

E:\Program Files\Java\jdk1.8.0_131\jre\lib\security

5、问题解决

如上述问题解决不掉,可以看一下这个连接

参考连接



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。