gpt4 book ai didi

spring - 无法使用 Spring Rest 模板访问 HTTPS 服务 - TrustStore 问题?

转载 作者:太空宇宙 更新时间:2023-11-03 13:05:34 24 4
gpt4 key购买 nike

访问 HTTPS 服务时遇到以下问题:

错误: ..Certification authentication failed</TITLE>
...
An attempt to authenticate with a client certificate failed.
A valid client certificate is required to make this connection.

我正在使用 Spring RestTemplate excahnge API:

restTemplate.exchange(reqInfo.getUrl(),HttpMethod.GET,requestEntity,String.class);

我尝试了两种方法来提供 trustStore,但错误仍然存​​在:

1.) 作为参数传递: java -cp -Djavax.net.ssl.trustStore="trustStore.jks"
-Djavax.net.ssl.trustStorePassword="pwd" Test

2.) 设置属性

System.setProperty("javax.net.ssl.trustStore","path to truststore");
System.setProperty("javax.net.ssl.trustStorePassword","pwd");

我还尝试使用 HTTPclient 使用简单的 Java 代码然后它工作正常但是使用 SPring RestTemplate 没有任何选项工作,我在这里遗漏了什么吗?

注意:如果我对那个 URL 进行 curl ,我会得到与未提供信任库相同的错误。因此,我假设这个问题是由 TrustStore 引起的。

最佳答案

最后我能够解决上述问题。

在构建 SSL 上下文时,我没有加载 keystore (尽管我通过参数传递它),因此我得到证书身份验证失败,因为 keystore 不可用。

下面的代码解决了这个问题:(添加了 loadKeyMaterial )

sslcontext = SSLContexts.custom().loadTrustMaterial(trustStore, new TrustSelfSignedStrategy())
.loadKeyMaterial(keyStore, keyStorePwd).build();

关于spring - 无法使用 Spring Rest 模板访问 HTTPS 服务 - TrustStore 问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48561938/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com