gpt4 book ai didi

java - 尽管有代理,Java PKIX/validator.ValidatorException 仍存在 SSL 问题

转载 作者:太空宇宙 更新时间:2023-11-04 11:06:48 24 4
gpt4 key购买 nike

我们所处的场景是,公司代理正在解密所有 HTTPS 流量,并使用 Java 不信任的 CA ROOT 对其进行重新签名。

我们还面临无法修改 Java 目录中的 cacerts 文件的情况。

我们在许多 Java 应用程序中遇到以下问题:

sun.security.validator.ValidatorException: PKIX path building failed: 
sun.security.provider.certpath.SunCertPathBuilderException: unable to find
valid certification path to requested target

我们不想添加单独的证书。

但是我们可以做的是更改 JVM 参数:

  1. -Dtrust_all_cert=true没有效果
  2. -Dhttps.proxyHost=localhost -Dhttps.proxyPort=8888没有效果

在第 2 步中,我们尝试通过 Fiddler 作为代理,但当我们发出 HTTPS 请求时,不会出现任何请求。

如果我们设置-Dhttp.proxyHost=localhost -Dhttp.proxyPort=8888并执行 HTTP 请求,我们可以在 Fiddler 中看到流量。所以...

  1. 为什么 trust_all_cert 在这里没有帮助?
  2. 为什么 Java 不使用我们指定的 https 代理?

注意:我们甚至尝试过将 java 程序硬连线以使用 localhost:8888 作为代理。同样,适用于 HTTP,但不适用于 HTTPS。

最佳答案

一种方法是创建一个新的 cacerts 文件并在 JVM 中使用它:

  1. 下载 CA 根证书(例如 root.cer)
  2. keytool -import -noprompt -trustcacerts -alias root -file root.cer -keystore .\cacertsnew -storepass ***
  3. java -Dhttps.proxyHost=someproxy -Dhttps.proxyPort=8080 -Djavax.net.ssl.trustStore=cacertsnew ...

关于java - 尽管有代理,Java PKIX/validator.ValidatorException 仍存在 SSL 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46407111/

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