簡體   English   中英

Windows 2003服務器:請求已中止。 無法創建SSL / TLS安全通道

[英]Windows 2003 server: The request was aborted. Could not create SSL/TLS secure channel

我們正在嘗試使用System.Net.HttpWebRequest(C#.Net 3.5)調用公共API,該API使用證書對數據進行身份驗證和加密。 從Windows 8.1系統調用API時,我們看到API調用正在順利進行。 但是,從Windows 2003 Server調用API時,它失敗並顯示以下錯誤。

該請求已中止:無法創建SSL / TLS安全通道。

所需的P12文件和.cert(證書頒發機構)已正確安裝在兩個系統中。 似乎公共API支持TLS1.1 +協議(不能完全確定,但是猜測,已經要求API支持團隊確認相同),而Windows 2003服務器僅支持SSLv3或TLS1.0。 這似乎是一個問題。 不幸的是,一段時間以來,我們沒有選擇升級服務器的選項,並且系統上僅安裝了.Net 3.5,而應用程序是使用Net 3.5構建的。

牢記這一點,是否有任何方法可以驗證Windows Server 2003上此問題的根本原因,還是通過更改協議在源代碼中支持TLS1.1 +?

.Net 4.0中有一些選項可以將SecurityProtocol更改為TLS11或TLS12,但是由於無法將應用程序(屬於應用程序套件的一部分)升級到.Net 4.0,因此似乎很難做到。



    HttpWebRequest request = new HttpWebRequest(address);

    ServicePointManager.Expect100Continue = true;
    ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;

    X509Store store = new X509Store("My", StoreLocation.LocalMachine);

    // Open the store.
    store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);

    X509Certificate2Collection coll = store.Certificates.Find(X509FindType.FindBySubjectName, "test", false);

    if (coll != null && coll.Count > 0)
    {
       request.ClientCertificates.Add(coll[0]);
    }

感謝您的幫助和時間。 謝謝。

經過進一步分析后,我們發現服務器確實支持TLS 1.0和SSLv3,但是即使Windows 2003也支持這些協議,應用程序仍無法使用證書與服務器通信,但存在相同的錯誤。

IT部門以后安裝https://support.microsoft.com/en-us/kb/948963的Windows 2003服務器,里面裝了AES加密套件的窗口補丁。 安裝此修補程序后,通信開始但間歇性地開始工作,並且不一致。

最后,我們嘗試了可從http://www.chilkatsoft.com/HttpDotNet.asp獲得的Chilkat Http組件,該組件成功了,現在使用P12證書,TLS 1.0協議和AES密碼套件持續進行API調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM