gpt4 book ai didi

java - 从 Java 调用 SSL URL 会出现证书问题

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

我正在尝试使用 SSL 创建一个 API。当我执行调用时,出现以下错误:

org.springframework.web.client.ResourceAccessException: I/O error on GET request for "https://yyyyy.zzz/123":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

我知道 StackOverflow 中有很多关于此问题的问题,但我看到的问题是因为证书是自签名的。在这种情况下,证书是有效的,浏览器可以毫无问题地将其识别为有效证书。

所以我的问题是,为什么从 Java 调用时会失败,而在使用浏览器时却运行良好?

最佳答案

我有同样的问题。浏览器识别了证书(和证书路径),但 Java 虚拟机没有。错误文本相同。

在我的例子中,信任根位于浏览器 keystore 和 Java 信任 keystore 中。这样每个人都可以检查推力路径。但是,如果您的服务器返回的不是整个证书路径,而是只返回一个服务器,那就更难了。在这种情况下,只有当 validator 在其 thrust-store 中有中间证书时,才能验证证书路径。

因为 java keystore 不像浏览器中那样定期更新,所以您可以在浏览器中获得中间证书,但不能在 JVM 中获得。

在这种情况下可能的解决方案:

  • 服务器返回整个证书链
  • 要添加到 java 信任库中的中间证书

更多信息请查看Certificate path discovery in Java

关于java - 从 Java 调用 SSL URL 会出现证书问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21512298/

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