WCF身份验证-X509证书

问题描述:

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

The remote certificate is invalid according to the validation procedure. 

如果我把我的证书(自签名),并把它添加到信任的人,那么这个错误消失。我相信这意味着我需要向我的服务的所有(外部)消费者提供我的证书。有没有办法解决?

+0

我的安全配置如下: – user472292 2011-06-15 18:24:10

由于我们为开发目的使用自签名证书,因此我必须重写证书的验证。我的代码是:

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

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

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

自签证书意味着证书的CA与证书本身相同。

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

如果你想使用证书进行许多不同的客户,我强烈建议你看一看公共PKI服务的公司,如威瑞

+1

证书由CA颁发(基于CSR创建,证书签名请求和签名),未经过”验证“。当然,OP使用不受信任的自签名证书。 – 2011-06-15 18:42:04

自签名证书也不能被信任(除非用户明确相信他们或一些代码这样做)。您确实需要从Thawte,GlobalSign,Comodo(InstantSSL)等已建立的CA购买证书。我们使用GlobalSign和Comodo,每个都有自己的优势。您需要的是为您的服务器的域名发布的常规“SSL证书”(因为他们称之为该名称不正确)。