gpt4 book ai didi

java - C# HttpClient 是否忽略 SSL 证书错误?

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

我们有一个内部网络服务托管在 https 上,并有一个授权的根 CA。当我尝试从 Java Apache HttpClient 调用该服务时,它给了我证书错误“PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径”。

使用 SSL 工具,我发现 Web 服务正在发送没有中间证书的证书链,它只包含服务器证书。所以 Java 证书错误是有道理的,因为只有根 CA 存在于 Java 信任库中并且它无法验证证书链,因此错误。

但另一方面,我可以使用 C# HttpClient (.Net 4.6.1) 毫无问题地调用同一个 Web 服务。

C# HttpClient 是忽略了 Web 服务的证书问题,还是正在下载丢失的证书?任何人都可以阐明这一点吗?

最佳答案

通过 Stephen 和 Mark 非常有帮助的评论解决了这个问题。我在 app.config 中设置了跟踪,我发现 C# HttpClient 可以找到中间证书。

“System.Net 信息:0:[23580] SecureChannel#41622463 - 远程证书已被用户验证为有效。”

但我已经确认中间证书不存在于导致这种混淆的 Windows 证书存储区中。我再次在那里检查,结果证明证书在我的用户帐户下,而不是计算机帐户下。它一定是在我们公司的桌面设置时安装在那里的。

现在我不太确定这两个证书存储在 Windows 中的用法之间的区别,但至少我了解 C# 客户端如何找到证书。

关于java - C# HttpClient 是否忽略 SSL 证书错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49827943/

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