由于接口是HTTPS,本地没有证书,导致报
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
导出证书
创建一个Java信任库
创建一个Java信任库(Truststore),并将目标网站的SSL证书导入其中。使用java自带的keytool命令行工具来完成此操作。在cmd中使用命令:
keytool -import -keystore <信任库文件路径> -storepass <密码> -alias alias_for_certificate -file <证书文件路径>
该命令由4个部分组成:
keytool -import
用于导入的命令
-keystore <信任库文件路径>
希望生成的信任库文件,例如路径可以写:C:\Users\abc\Desktop\truststore.jks
-storepass <密码>
设置一个信任库密码
-alias alias_for_certificate -file <证书文件路径>
指定要导入的证书文件,例如可以写:C:\Users\abc\Desktop\cert.pem
如:
keytool -import -keystore '/Users/jimmy/Java/certificate/medextech.jks' -storepass '123456' -alias alias_for_certificate -file '/Users/jimmy/Thoth/ThothHis/SourceCode/thoth-his-fuwai/doc/medextech.cer'
SpringBoot项目中如何指定信任库
SpringApplication.run()增加两行代码。示例:
@SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); // 代码放到这里 可以使用相对路径 System.setProperty("javax.net.ssl.trustStore", "/Users/jimmy/Java/certificate/medextech.jks"); //信任库文件路径 System.setProperty("javax.net.ssl.trustStorePassword", "123456"); //密码 } }