【发布时间】:2018-04-14 04:30:27
【问题描述】:
我们有一个托管在 https 上的内部 Web 服务,并具有授权的根 CA。当我尝试从 Java Apache HttpClient 调用该服务时,它给了我证书错误“PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径”。
使用 SSL 工具,我发现 Web 服务正在发送没有中间证书的证书链,并且它只包含服务器证书。所以 Java 证书错误是有道理的,因为 Java 信任库中只有根 CA,它无法验证证书链,因此出现了错误。
但另一方面,我可以使用 C# HttpClient (.Net 4.6.1) 调用相同的 Web 服务,而不会出现任何问题。
C# HttpClient 是否忽略了 Web 服务的证书问题,还是正在下载丢失的证书?任何人都可以对此有所了解吗?
【问题讨论】:
-
不,它不会忽略它们....除非您将其配置为忽略它们。使用它来计算实际发生的事情:stackoverflow.com/questions/5977817/…
-
C# 使用 Windows 证书存储,相关证书是否可能在该证书存储中?
标签: java c# ssl apache-httpclient-4.x dotnet-httpclient