1. 程式人生 > >https 請求被中止: 未能建立 SSL/TLS 安全通道

https 請求被中止: 未能建立 SSL/TLS 安全通道

WebClient 呼叫本地P12證書,之前一直報錯,後面找了N多資料,終於在stackOverFlow找到了蛛絲馬跡,下面一定要用X509Certificate2 這個證書類,記得帶了"2",

如果不帶,本地電腦或IE、程式 兩者都必須要註冊證書!!!

這事情折騰了我一整天!

internal class MyWebClient : WebClient

    {
        protected override WebRequest GetWebRequest(Uri address)
        {
            HttpWebRequest request = (HttpWebRequest)base.GetWebRequest(address);
            if (address.AbsoluteUri.ToLower().StartsWith("https:"))
            {
                System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate (Object obj, X509Certificate X509certificate, X509Chain chain, System.Net.Security.SslPolicyErrors errors)
                {
                    return true;
                };

                X509Certificate2
certificate = new X509Certificate2(Properties.Resources.client, Properties.Resources.httpsKey8843);
                request.ClientCertificates.Add(certificate);
            }

            request.Timeout = 600000;//設定超時為10分鐘
            request.ReadWriteTimeout = 600000;
            return request;
        }
    }