从 Spring 启动应用程序点击第 3 方 API 时出错:trustAnchors 参数必须为非空

问题描述

我有一个 Spring Boot 应用程序(在 HTTPS 上运行,但在自签名证书上运行)。它使用 JDK 1.8(不是开放的 JDK),我写下了一个代码,其中我的代码正在使用 3rd 方 API。早些时候我的代码正在工作。但是对于其他一些任务,我必须导入公司提供的证书来制作应用程序 HTTPS。为此,我将密钥库从 JKS 更改为 PCKS12 标准。

现在,在更改密钥库后(我这样做是为了使用公司提供的证书启用我的应用程序 HTTPS),我的代码无法使用第 3 方 API。这是抛出以下错误

由:java.security.InvalidAlgorithmParameterException:trustAnchors 参数必须非空

你能帮我解决这个错误吗?我在网上查了一下,发现我应该在我的应用程序中设置信任存储,但无法做到这一点。

解决方法

最后我能够解决这个问题。通过在我的代码中添加以下几行 System.setProperty("javax.net.ssl.trustStore","<classpath:file.p12>"); System.setProperty("javax.net.ssl.trustStorePassword","<pwd>"); System.setProperty("javax.net.ssl.truststoretype","PKCS12");