调试证书策略验证失败:"根据验证步骤,远端证书无效."

本文关键字:quot 验证 证书 无效 策略 调试 失败 | 更新日期: 2023-09-27 18:13:32

我正在尝试编写一个使用web服务的c#客户端。通信是加密的。我已经下载并安装了网站的证书到WinXP保存它们的神奇地方。

当我运行我的客户端时,我失败了,"根据验证过程,远程证书无效。"

当我运行certmgr。msc时,GUI通知我证书有一个无效的策略。证书日期有效,证书路径正确。证书确实有一个证书策略,其策略标识整数与点交错(如1.2.30…)

使用X509Certificate2.Verify Method文档中的代码,我可以看到Verify消息确实返回false。

在试图研究这个错误时,我在Brian Komar的Windows Server 2008 PKI和证书安全:

中找到了一个参考

政策验证。如果调用证书链引擎的应用程序期望在证书中包含特定的应用策略或证书oid,而CA链中的证书中不包含所需的策略或oid,则证书链引擎认为该证书无效。

我没有看到我对特定的应用程序策略设置任何期望。我正在将这个WSE3代码移植到WCF,所以它可能是内置的。

关于如何进一步运行这个有什么建议吗?证书真的有问题吗?

如果证书是正确的,我是否需要配置或扩展CryptoConfig类来关闭检查策略?

感谢大家的帮助。

调试证书策略验证失败:"根据验证步骤,远端证书无效."

您可以通过将ServicePointManager..::.ServerCertificateValidationCallback设置为返回true的委托来禁用验证。这将使您有时间跟踪证书的任何问题。

我用来跟踪这类错误的一种技术是在浏览器中访问Web Service。

例如,如果您有一个位于https://server/foo.asmx的Web服务,那么将该地址放到您选择的浏览器中,您可能会得到一个更人性化的错误解释。