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

Java C#HttpClient是否忽略SSL证书错误?,java,c#,ssl,apache-httpclient-4.x,dotnet-httpclient,Java,C#,Ssl,Apache Httpclient 4.x,Dotnet Httpclient,我们有一个内部web服务托管在https上,具有授权的根CA。当我试图从Java Apache HttpClient调用该服务时,它给了我一个证书错误“PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径” 使用SSL工具,我发现web服务发送的证书链没有中间证书,并且只包含服务器证书。因此Java证书错误是有意义的,因为Java truststore中只有根CA,并且它无法验证

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

使用SSL工具,我发现web服务发送的证书链没有中间证书,并且只包含服务器证书。因此Java证书错误是有意义的,因为Java truststore中只有根CA,并且它无法验证证书链,因此出现错误

但另一方面,我可以使用C#HttpClient(.Net 4.6.1)调用相同的web服务,而不会出现任何问题


C#HttpClient是忽略了web服务的证书问题,还是正在下载丢失的证书?有人能解释一下吗?

斯蒂芬和马克提出了非常有用的意见。我在app.config中设置了跟踪,在那里我发现C#HttpClient可以找到中间证书

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

但我已经核实了中间证书不存在于Windows证书存储中,这导致了这种混乱。我又查了一遍,发现证书在我的用户帐户下,而不是电脑帐户下。它一定是在我们公司的台式机安装时安装的


现在我不确定这两个证书存储在Windows中的使用有什么区别,但至少我了解C#client是如何找到证书的。

不,它不会忽略它们。。。。除非您将其配置为忽略它们。使用此选项了解实际情况:C#使用Windows证书存储,相关证书是否可能在该证书存储中?