解决ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCert...

文章讲述了在处理线上接口项目时,由于第三方悄然升级到HTTPS导致的证书验证错误。解决方法包括设置信任所有证书、删除安全文件配置、手动生成并放置证书文件,以及使用`javaInstallCert`命令生成证书。

线上与三方对接的接口项目,因无良三方悄悄升级启用https而导致……

好吧,因请求接口方使用了https,但没有相应的证书导致报错,错误提示如下:

Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to
 find valid certification path to requested target

网上查了一下,这是在JDK8及以上高版本使用中,因为源应用程序不信任目标应用程序的证书,在源应用程序的JVM信任库中找不到该证书或证书链的原因导致的。

网上方法不少,一是通过程序设置信任所有证书,不知道怎么搞,没试;

二是删除jdk下安全文件的配置信息,亲测没毛用;

再就是手动生成证书文件,然后放到jdk对应目录下,重启就行,亲测好用。

生成的证书文件存放位置是jdk\jre\lib\security。

生成文件的方法可以参考 生成证书

因为生成文书这个方法需要编译工具类,我这有个已经编译好的,可以直接下载下来用,生成方法参考大神的教程就行。

另外一点小提示:

运行java InstallCert hostname 命令来生成证书文件的时候,hostname就是目标IP和端口,比如java InstallCert  192.168.0.1:8899,如果是域名,不用带https,比如java InstallCert  baidu.com

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值