解决unable to find valid certification path to requested target

昨天访问供应商提供的接口还是正常的,今天早上上班却被告知系统功能总是提示错误,完全用不了,查询系统日志以及本地重新测试发现,调用供应商提供的接口提示

unable to find valid certification path to requested target

javax.net.ssl.SSLHandshakeException: General OpenSslEngine problem

The connection observed an error

这些错误,搞了一个早上,不停地上网查资料,有的说要更新JDK版本,有的说要将服务端证书添加到Java证书信任库中,还有人说一些别的,我现在都想不起来他们说的是什么,总之是一些没用的。

我更新高版本JDK后,发现调用接口正常了,但是系统是很多年前开发的,不方便更新版本,后来觉得服务端证书添加到Java证书信任库有点道理,于是往这个方向着手,果然不出所料,经过一个早上的努力,终于把问题解决了

添加证书
keytool -import -alias cacerts -keystore C:\blobcer\cacerts -file C:\blobcer\xxx.crt

删除证书
keytool -delete -alias "alias-name" -keystore "C:\blobcer\cacerts"

首先要将供应商提供的接口地址在浏览器里打开,获取它的证书,然后再加到自己的JDK证书信任列表中,由于我的JDK路径有空格,我就将JDK证书信任列表复制到没空格的地方,加工好再放回原位,原来的位置是JAVA_HOME/jre/lib/security/cacerts。

备注:java证书默认密码是changeit

证书导出方法如下图:

 

posted on 2024-06-22 16:03  会走路的虾米  阅读(132)  评论(0编辑  收藏  举报

导航