c# webService https访问异常–远程证书无效的解决办法


问题描述:

1 c#中直接引用http webService,近期将以前的http web协议修改为 https后,系统立马后产生以下错误信息

“根据验证过程 远程证书无效”

分析原因,c#访问时候,服务器端没有此证书,所以无法和远程的webService进行交互访问。



解决办法:

定义一个静态类,对webService所有访问中,远程证书进行验证,返回true

   using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;


namespace webHelper
{
    public static class removeWebServiceCertificateValidate
    {
         
        /// 
        /// 设置信任所有证书
        /// 
        public static void SetCertValild()
        {
            ServicePointManager.ServerCertificateValidationCallback
                       += RemoveCertificateCheck;
        }

        /// 
        /// 移除证书验证
        /// 
        private static bool RemoveCertificateCheck(
           object sender, X509Certificate cert,
            X509Chain chain, SslPolicyErrors error)
        {
            //信任所有证书 
            return true;
        }

    }
}



调用方式:
在所有的webservice调用方法前 调用此方法
removeWebServiceCertificateValidate.SetCertValild(); //信任所有证书
webService.HelloWorld();