【问题标题】:Debugging certificate policy validation failures: "The remote certificate is invalid according to the validation procedure."调试证书策略验证失败:“根据验证程序,远程证书无效。”
【发布时间】:2011-12-20 12:29:40
【问题描述】:

我正在尝试编写一个使用 Web 服务的 C# 客户端。通信是加密的。我已将站点的证书下载并安装到 WinXP 保存它们的神奇位置。

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

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

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

在尝试研究此错误时,我在Brian Komar's Windows Server 2008 PKI and Certificate Security 中找到了参考:

策略验证。如果调用证书链接引擎的应用程序需要证书中的特定应用程序策略或证书 OID,并且所需的策略或 OID 不包含在 CA 链中的证书中,证书链接引擎认为证书无效。

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

关于如何进一步降低它的任何建议?证书真的有问题吗?

如果证书没问题,是否需要配置或扩展 CryptoConfig 类以关闭检查策略?

任何和所有帮助表示赞赏。

【问题讨论】:

    标签: c# certificate x509


    【解决方案1】:

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

    例如,如果您有一个位于 https://server/foo.asmx 的 Web 服务,则将该地址放入您选择的浏览器中,您可能会获得对错误的更易读的解释。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2011-03-28
        • 2016-11-28
        • 2016-12-12
        • 2013-08-08
        • 2012-07-20
        • 2015-03-17
        • 2021-05-30
        相关资源
        最近更新 更多