解决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
证书导出方法如下图:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)