赞
踩
线上与三方对接的接口项目,因无良三方悄悄升级启用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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。