2017-04-19 25 views
0

該URL請求某些網站的保修信息。相同的網址不同的環境 - 一個成功的另一個失敗,SSL錯誤

出於某種原因,爲了測試目的,我必須快速轉發系統時鐘幾天。在兩個環境中瀏覽器的行爲是一致的 - 我得到了「證書錯誤 - 繼續訪問本網站(不推薦)」。當我將時鐘恢復到當前時間時,保修信息按預期返回。

但是,兩個環境中的相同代碼表現不同。我正在使用

(HttpWebResponse) req.GetResponse(); 

一次失敗,出現異常情況:「底層連接已關閉:無法建立SSL/TLS安全通道的信任關係。」這是預期的,但另一個成功地在保修信息中響應。

這兩個系統中沒有特別的設置,我只是不知道爲什麼代碼行爲不同 - 成功的。

感謝,

+0

正在使用哪些操作系統? –

+0

我敢打賭,失敗的環境不信任證書本身或鏈中的CA.在兩種環境中檢查certmgr。 –

回答

0

事實證明,成功的人有像下面的程序執行的代碼的其他部分,但失敗的人使用的默認行爲。

public class TrustAllCertificatePolicy : System.Net.ICertificatePolicy 
{ 
    public TrustAllCertificatePolicy() 
    {} 

    public bool CheckValidationResult(ServicePoint sp, X509Certificate cert,WebRequest req, int problem) 
    { 
    return true; 
    } 
} 

System.Net.ServicePointManager.CertificatePolicy = new TrustAllCertificatePolicy(); 
相關問題