解决 sun.security.validator.ValidatorException: PKIX path building failed 的问题

https://blog.csdn.net/chao_9836/article/details/121685079?spm=1001.2014.3001.5501\

线上与三方对接的接口项目,因无良三方悄悄升级启用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
InstallCert 

 


源码学习 出现彻底解决unable to find valid certification path to requested target
https://www.cnblogs.com/northeastTycoon/p/17950387

posted @ 2025-06-10 09:44  CrazyJC  阅读(424)  评论(0)    收藏  举报