WCF无法为具有权限的SSL / TLS安全通道建立信任关系

时间:2012-01-03 01:18:03

标签: wcf ssl azure self-signed

情境:

我在Azure中托管了一个名为SERVICEA的WCF Web服务。它使用HTTPS的自签名证书。 此SERVICEA检查传入的请求并确定是否要呼叫:

  
      
  1. SERVICEB或
  2.   
  3. SERVICEC
  4.   

SERVICEB和SERVICEC也使用自签名证书。对于https。

问题:

当我部署SERVICEA并尝试调用以便它调用SERVICEB时,我收到以下错误消息:

*

  

无法为SSL / TLS安全通道建立信任关系   有权威“SERVICEB ......”

*

注意它出现错误消息的SERVICEB ..

Anyidea我怎么能解决这个问题,好吗?

3 个答案:

答案 0 :(得分:2)

如果服务器证书的自签名如下所示,则需要验证服务器证书:

ServicePointManager.ServerCertificateValidationCallback = (sender, cert, chain, error) => true;

答案 1 :(得分:0)

您希望捕获ServerCertificateValidationCallback并使其忽略您选择的证书。 这是一篇不错的文章,解释了如何:http://blog.jameshiggs.com/2008/05/01/c-how-to-accept-an-invalid-ssl-certificate-programmatically/

答案 2 :(得分:0)

Rajesh正在做些什么,但他的回答完全禁用了认证检查。

相反,我建议应将类似以下的事件处理程序添加到您的应用程序中:

ServicePointManager.ServerCertificateValidationCallback +=  (sender, certificate, chain, errors) =>
{
    var request = sender as HttpWebRequest;
    if (request != null && request.Address.Host == "<Your domain name goes here>")
        return true;

    return errors == SslPolicyErrors.None;
};