0

设想:

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

  1. 服务 B 或
  2. 服务中心

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

问题:

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

*

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

*。

请注意,它在错误消息中显示 SERVICEB..。

知道如何解决这个问题吗?

4

3 回答 3

2

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

ServicePointManager.ServerCertificateValidationCallback = (sender, cert, chain, error) => true;
于 2012-01-03T10:38:46.410 回答
0

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

于 2012-01-03T05:46:05.117 回答
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;
};
于 2014-01-02T13:37:49.933 回答