WCF身份验证 - X509证书

时间:2011-06-15 18:18:49

标签: wcf wcf-security x509certificate x509

我想使用X509证书对用户进行WCF服务身份验证。我设置我的服务以使用SSL并进行所有相关的WCF配置。当我尝试使用我的服务时,我收到以下错误:

 The remote certificate is invalid according to the validation procedure. 

如果我拿走我的证书(自签名)并将其添加到“受信任的人”,那么该错误就会消失。我相信这意味着我需要向我服务的所有(外部)消费者提供我的证书。有没有办法解决这个问题?

3 个答案:

答案 0 :(得分:1)

所有证书都由证书颁发机构(CA)验证。

在您的情况下,我怀疑您的CA不受信任。启动MMC并为本地计算机添加证书管理器。 Se在受信任的根CA下(不记得确切的单词)。

自签名证书表示证书的CA与证书本身相同。

还要了解如何使用证书:您是使用它们来识别客户端,还是用于加密传输级别的SSL?

如果您想为许多不同的客户使用证书,我强烈建议您查看Verisign等公司的公共PKI服务

答案 1 :(得分:0)

自签名证书不受信任且不可信任(除非用户明确信任它们或某些代码执行此操作)。您确实需要从已建立的CA之一购买证书,例如Thawte,GlobalSign,Comodo(InstantSSL)。我们使用GlobalSign和Comodo,每个都有自己的优势。您需要的是为您的服务器域名发布的常规“SSL证书”(因为他们称之为此名称不正确)。

答案 2 :(得分:0)

由于我们使用自签名证书用于开发目的,我不得不覆盖证书的验证。我的代码是:

if (validateServerCertificate)
        {
            ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(ValidateRemoteCertificate);
        }
private static bool ValidateRemoteCertificate(object sender,
                                                  X509Certificate certificate,
                                                  X509Chain chain,
                                                  SslPolicyErrors policyErrors)
    {
        return true;
    }