码迷,mamicode.com
首页 > Web开发 > 详细

https请求时出错:Could not establish trust relationship for the SSL/TLS secure channel

时间:2015-09-14 13:58:53      阅读:309      评论:0      收藏:0      [点我收藏+]

标签:

当我在用NET命名空间下获取URL的时候,提示如下错误:

The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.

使用传输安全模式,证书建立SSL,宿主端口证书配置完毕,但是客户调用服务出错。

Could not establish trust relationship for the SSL/TLS secure channel with authority ‘computer:9001‘.
不能和授权计算机为 SSL/TLS 安全通道建立信任关系

【1】问题分析:
       Could not establish trust relationship for the SSL/TLS secure channel with authority ‘computer:9001‘.
不能和授权计算机为 SSL/TLS 安全通道建立信任关系.
       实际原因和证书有很大关系,这里证书是跟证书颁发机构信任的证书,在客户端和服务端建立安全会话的时候,无法信任此证书。
    另外一个可能的原因是你其他域里也使用此一个证,这个也有可能导致错误。
【2】解决办法:

定义一个类,来对远程X.509证书的验证,进行处理,返回为true.我们要自己定义一个类,然后在客户单调用WCF服务之前,执行一次即可。

代码如下:

技术分享
 public static class Util
    {
        /// <summary>
        /// Sets the cert policy.
        /// </summary>
        public static void SetCertificatePolicy()
        {
            ServicePointManager.ServerCertificateValidationCallback
                      += RemoteCertificateValidate;
        }

        /// <summary>
        /// Remotes the certificate validate.
        /// </summary>
        private static bool RemoteCertificateValidate(
           object sender, X509Certificate cert,
             X509Chain chain, SslPolicyErrors error)
        {
            // trust any certificate!!!
            System.Console.WriteLine("Warning, trust any certificate");
            return true;
        }
    }
View Code

 

然后,你要在调用请求HTTPS时,先调用这个方法: Util.SetCertificatePolicy();

https请求时出错:Could not establish trust relationship for the SSL/TLS secure channel

标签:

原文地址:http://www.cnblogs.com/sjns/p/4806911.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!