zoukankan      html  css  js  c++  java
  • https请求时出错:Could not establish trust relationship for the SSL/TLS secure channel

    当我在用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();

  • 相关阅读:
    关于数据库主键和外键
    数据库建立索引常用原则
    恭喜!Apache Hudi社区新晋多位Committer
    触宝科技基于Apache Hudi的流批一体架构实践
    轻快好用的Docker版云桌面(不到300M、运行快、省流量)
    实时视频
    通讯-- 通讯录
    通讯-- 总指挥部
    右侧菜单-- 事件面板
    应急救援预案选择逻辑
  • 原文地址:https://www.cnblogs.com/sjns/p/4806911.html
Copyright © 2011-2022 走看看