1. 程式人生 > >SSL/TLS安全通道建立的WebService 呼叫

SSL/TLS安全通道建立的WebService 呼叫

今天寫程式的時候呼叫到一個第三方的DLL檔案,本機除錯一切都正常,但是程式不是到伺服器以後一直提示一個BUG:"基礎連線已經關閉: 未能為SSL/TLS 安全通道建立信任關係"。
後來把DLL檔案進行反編譯,發現是在獲得請求的時候出錯了。

引用
WebResponse response = WebRequest.Create("https://……").GetResponse();



於是在伺服器上用瀏覽器開啟上面的地址,發現會彈出一個確認證書的視窗,看來是證書問題。
在網上一頓搜尋,發現了一個決絕辦法甚是好用,而且很簡單,在請求之前新增一行程式碼。

C#程式碼 複製程式碼
  1. ServicePointManager.CertificatePolicy = 
    new AcceptAllCertificatePolicy();  


其中AcceptAllCertificatePolicy需要自己定義:

C#程式碼 複製程式碼
  1. internalclass AcceptAllCertificatePolicy : ICertificatePolicy   
  2.     {   
  3. public AcceptAllCertificatePolicy()   
  4.         {   
  5.         }   
  6. public
    bool CheckValidationResult(ServicePoint sPoint,   
  7.            X509Certificate cert, WebRequest wRequest, int certProb)   
  8.         {   
  9. // Always accept
  10. returntrue;   
  11.         }   
  12.     }  




以上方法雖然解決了遇到的問題,可是在VS中會提示ServicePointManager.CertificatePolicy已經被否決。由於我是一個喜歡完美的人,於是按照提示使用新的方法來處理。
改造後的程式碼更加簡潔和明瞭

C#程式碼 複製程式碼
  1. ServicePointManager.ServerCertificateValidationCallback = ValidateServerCertificate;  
C#程式碼 複製程式碼
  1. privatebool ValidateServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)   
  2.         {   
  3. returntrue;   
  4.         }  



就這樣了,一個委託搞定!

加入名稱空間:

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

相關推薦

SSL/TLS安全通道建立WebService 呼叫

今天寫程式的時候呼叫到一個第三方的DLL檔案,本機除錯一切都正常,但是程式不是到伺服器以後一直提示一個BUG:"基礎連線已經關閉: 未能為SSL/TLS 安全通道建立信任關係"。 後來把DLL檔案進行反編譯,發現是在獲得請求的時候出錯了。 引用 WebResponse res

呼叫Https WebService是報“基礎連線已經關閉: 未能為 SSL/TLS 安全通道建立信任關係”的解決過程

今天在通過C#訪問Webservice時遇到一個問題,首先通過對方提供的wsdl生成了呼叫代理類,在測試能否正常訪問時,訪問正式環境https://api.xxx.xx,一切正常,當訪問測試環境是https://apitest.xxx.xxx,總是報“基礎連線已經關閉: 未能

System.Net.WebException: 基礎連線已經關閉: 未能為 SSL/TLS 安全通道建立信任關係。 ---> System.Security.Authentication.AuthenticationException: 根據驗證過程,遠端證書無效。

今天寫程式的時候呼叫到一個第三方提供的https地址,訪問此地址去獲取加密的json格式資料,出現BUG c#報錯 :  System.Net.WebException: 基礎連線已經關閉: 未能為 SSL/TLS 安全通道建立信任關係。 ---> System.Security.Authe

基礎連線已經關閉: 未能為 SSL/TLS 安全通道建立信任關係。 根據驗證過程,遠端證書無效------解決方法

Message = "基礎連線已經關閉: 未能為 SSL/TLS 安全通道建立信任關係。"   InnerException = {"根據驗證過程,遠端證書無效。"} 解決方法如下:   using System;using System.Collections.Gene

XmlDocument.Load(url) url是https遠端時,報錯" 基礎連線已經關閉: 未能為 SSL/TLS 安全通道建立信任關係。" "根據驗證過程,遠端證書無效。"

XmlDocument.Load(url)  url是https遠端時,報錯" 基礎連線已經關閉: 未能為 SSL/TLS 安全通道建立信任關係。"   "根據驗證過程,遠端證書無效。" XmlDocument.Load(url)  url是是本地檔案或者和是http

reportservice 部署時提示“..未能為 SSL/TLS 安全通道建立信任關係"

從網上找到解決方案: 問題現象: 開啟任何報表,都會提示:未能為 SSL/TLS 安全通道建立信任關係。 問題原因: 解決方案: 問題原因:SQL報表配置檔案中,設定了SSL認證。 解決辦法:1.刪除SQL報表配置檔案中的SSL認證。 2.修改SQL報表配置檔案: 位置:

未能建立 SSL/TLS 安全通道解決方案

操作 當向一個https的url上傳送請求,報錯:未能建立 SSL/TLS 安全通道; 報錯前實現程式碼如下: /// <summary> /// 判斷遠端檔案是否存在 /// </summary> /// <param name="fileUrl">檔案路徑&

C# https雙向認證,"請求被中止: 未能建立 SSL/TLS 安全通道"解決辦法

最近的專案中用到了呼叫https的介面的功能,編寫出程式後在我自己的電腦上執行沒有問題,但是在同事的電腦上和服務上都沒有辦法正常執行,提示“請求被中止: 未能建立 SSL/TLS 安全通道”,最後在專案經理的幫助下和網上查找了大量的資料,以及做了大量的測試下終於解決了問題,所

徹底解決:請求被中止: 未能建立 SSL/TLS 安全通道

最近有個專案要呼叫客戶用java寫的帶https的webservice,對方提供了證書檔案 test.pfx,我這裡呼叫方式如下: //webservice代理類 SvcService svc = new SvcService(); //證書檔案路徑 string filePath = Confi

請求被中止: 未能建立 SSL/TLS 安全通道,以及解決方法。

場景描述: 我公司的網站之前就已經開發好了下單支援paypal支付,當然,這個是其他同事開發的。前段時間,主管讓我在另一個場景開發支援使用paypal支付,當時花了些時間看看關於paypal程式碼,然後就嘗試著寫了,雖然程式碼不多,很快就寫完了。不過接下來遇到的問題真的很頭疼,在沙盒模式下除錯,一直會跳出異

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

WebClient 呼叫本地P12證書,之前一直報錯,後面找了N多資料,終於在stackOverFlow找到了蛛絲馬跡,下面一定要用X509Certificate2 這個證書類,記得帶了"2", 如果不帶,本地電腦或IE、程式 兩者都必須要註冊證書!!! 這事情折騰了我一整

針對HTTP訪問時出現的:System.Net.WebException:“請求被中止: 未能建立 SSL/TLS 安全通道。”問題

是因為request請求中缺少設定UserAgent屬性。User Agent中文名為使用者代理,簡稱 UA,它是一個特殊字串頭,使得伺服器能夠識別客戶使用的作業系統及版本、CPU 型別、瀏覽器及版本、瀏覽器渲染引擎、瀏覽器語言、瀏覽器外掛等。一些網站常常通過判斷 UA 來給

【原創】C# API 未能創建 SSL/TLS 安全通道 問題解決

分享圖片 proto 執行 manager ima com 添加 poi ssl 在調用執行API之前添加以下代碼就行了 System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls1

Java中使用JSSE實現SSL/TLS安全協議

一、簡介 SSL/TLS協議是安全的通訊模式,而對於這些底層協議,如果要每個開發者都自己去實現顯然會帶來不必要的麻煩,正是為了解決這個問題Java為廣大開發者提供了Java安全套接字擴充套件——JSSE,它包含了實現Internet安全通訊的一系列包的集合,是SSL和TLS

python模組之smtplib: 用python傳送SSL/TLS安全郵件

    轉載請註明原文出自 http://blog.csdn.net/zhaoweikid/    python的smtplib提供了一種很方便的途徑傳送電子郵件。它對smtp協議進行了簡單的封裝。smtp協議的基本命令包括:    HELO 向伺服器標識使用者身份    M

SSL/TLS安全之——中間人攻擊(MITM)淺析

  首先需要理解SSL/TLS協議的原理,然後我們通過Burpsuite對HTTPS資料包進行抓包,來簡單討論中間人攻擊的實現場景。 一、SSL握手協議 1.客戶端生成相關引數 -> a)協議版本號 b)隨機數(cRandom) c)加密

Akka-CQRS(10)- gRPC on SSL/TLS 安全連線

  使用gRPC作為雲平臺和移動前端的連線方式,網路安全應該是必須考慮的一個重點。gRPC是支援ssl/tls安全通訊機制的。用了一個週末來研究具體使用方法,實際上是一個週末的挖坑填坑過程。把這次經歷記錄下來與各位分享。 gRPC的ssl/tls的原理是在服務端安裝安全證書公用certificat

建立RSA協商加密的安全通道

在基於TCP長連線的CS鏈路中,如何保證資料流的安全性是開發者最關注的問題之一。本文深入淺出的給大家介紹一下在TCP連線中,使用RSA協商加密的方式,建立一個安全加密的通訊鏈路,保證資料傳輸的安全性。文章分為3個主要部分,即RSA演算法簡介,安全通道協商流程詳解和一些工程優化方法。期望大家在讀了我這篇文章之後

使用axis2建立webservice步驟以及客戶端呼叫service服務程式碼

一、Axis2的下載和安裝      1.可從http://ws.apache.org/axis2/下載Axis2的最新版本:       可以下載如下兩個zip包:       axis2-1.5.4-bin.zip       axis2-1.5.4-war.zip

eclipse建立webservice client, java呼叫

JDK版本:1.7update65 Eclipse版本:Juno Service Release 2(4.2.2) 首先在Eclipse中安裝Axis2的外掛: 2,將zip壓縮包中的org.apache.axis2.eclipse.codegen.plugin_1.6.2.jar放置在%ECL