gpt4 book ai didi

java - java 如何验证证书以及为什么我收到 SSLHandshakeException

转载 作者:行者123 更新时间:2023-12-01 18:50:05 24 4
gpt4 key购买 nike

我尝试使用 RestTemplte 从服务器 A 上的服务和服务器 B 上的其他服务调用 api,但出现以下错误:

sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target; nested exception is javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

即使我将此配置(下面的代码)添加到其余模板中,仍然存在同样的问题。

SSLContext sslContext = new SSLContextBuilder()
.loadTrustMaterial(new File(keystore), trustStorePassword.toCharArray())
.build();
SSLConnectionSocketFactory socketFactory = new SSLConnectionSocketFactory(sslContext);
HttpClient httpClient = HttpClients.custom()
.setSSLSocketFactory(socketFactory)
.build();
HttpComponentsClientHttpRequestFactory factory =
new HttpComponentsClientHttpRequestFactory(httpClient);
RestTemplate restTemplate = new RestTemplate(factory);

我在网上找到的解决方案是从chrome导出证书并将其添加到JVM信任证书中。我不知道这是否是正确的解决方案,因为我们可以每 3 个月更改此证书..

我还有其他一些问题:

  • JVM 是否知道所有证书颁发机构(我认为有十亿个..),例如,当我使用其余证书调用 google 时,JVM 将使用“security/cacerts”对 JVM 进行验证?

  • 我应该在 JVM 受信任的证书中添加我们的证书来修复 sun.security.validator.ValidatorException: PKIX 路径构建失败: sun.security.provider.certpath.SunCertPathBuilderException: 无法找到有效的证书路径要求的目标;嵌套异常是 javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径

  • SSL 机制不会自动验证过程?

提前谢谢您。

最佳答案

正如您自己所发现的,jvm 当前不信任您的远程服务器的证书。要解决此问题,您必须将信任存储配置为信任该远程服务器。

您确实可以添加远程服务器的直接证书,这应该可以解决您的问题。

但正如您所说,证书可能是短暂的。您应该添加来自证书颁发机构的证书。这应该在 Chrome 的 key 链中可用。

不幸的是,如果您使用自签名证书,则没有证书颁发机构,只有第一个解决方案可用。

关于java - java 如何验证证书以及为什么我收到 SSLHandshakeException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59754701/

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