情境:
我在Azure中托管了一个名为SERVICEA的WCF Web服务。它使用HTTPS的自签名证书。 此SERVICEA检查传入的请求并确定是否要呼叫:
- SERVICEB或
- SERVICEC
醇>
SERVICEB和SERVICEC也使用自签名证书。对于https。
问题:
当我部署SERVICEA并尝试调用以便它调用SERVICEB时,我收到以下错误消息:
*
无法为SSL / TLS安全通道建立信任关系 有权威“SERVICEB ......”
*
注意它出现错误消息的SERVICEB ..
Anyidea我怎么能解决这个问题,好吗?
答案 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;
};