我想使用X509证书对用户进行WCF服务身份验证。我设置我的服务以使用SSL并进行所有相关的WCF配置。当我尝试使用我的服务时,我收到以下错误:
The remote certificate is invalid according to the validation procedure.
如果我拿走我的证书(自签名)并将其添加到“受信任的人”,那么该错误就会消失。我相信这意味着我需要向我服务的所有(外部)消费者提供我的证书。有没有办法解决这个问题?
答案 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;
}