【问题标题】:https using BasicHttpBinding and ignoring certificate errorshttps 使用 BasicHttpBinding 并忽略证书错误
【发布时间】:2012-05-02 15:22:09
【问题描述】:

我正在使用BasicHttpBinding 连接托管在安全 (https) 端口上的 Web 服务。为了让它工作,我将Security.Mode 更改为TransportWithMessageCredentialSecurity.Message 更改为BasicHttpMessageCredentialType.Cerificate。我也在呼唤

client.ClientCredentials.ClientCertificate.SetCertificate()

以 localhost 作为主题名。

这里的问题是,对于单元测试,我有一个来自 Web 服务器的未签名证书,并且应该忽略在代理创建期间引发的任何证书错误;但我无法这样做,因为我不断收到错误消息,告诉我“指定证书”。现在,我一无所知;我很感激这里的任何帮助。

【问题讨论】:

  • 如果只使用服务器证书,则将SecurityMode设置为Transport
  • 谢谢@Tung;我可以调用 RemoteCertificateValidationCallback 方法并能够返回“TRUE”以忽略错误!请写下您的评论作为答案!

标签: c# security x509certificate2


【解决方案1】:

对于服务器 ssl,SecurityMode 应设置为 Transport

【讨论】:

    【解决方案2】:

    您可以使用以下代码跳过证书验证。这将创建一个 RemoteCertificateValidationCallback,对于任何证书始终返回 true。

    System.Net.ServicePointManager.ServerCertificateValidationCallback = 
        (sender, certificate, chain, errors) => true;
    

    【讨论】:

    • 我已经有 ServerCertificateValidationCallback 但没有被调用;一旦我将安全模式更改为传输,它就起作用了!
    猜你喜欢
    • 1970-01-01
    • 2023-03-23
    • 2011-11-16
    • 2020-08-22
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多