2017-02-24 146 views
0

在開始之前,我知道正確的做法是升級操作系統。我試圖解決這個問題,正如你可能想象的那樣,有很多死路一條。我發現了一些似乎可行的東西,但我並不清楚爲什麼要專門尋找一些幫助。試圖在XP sp3上使用.net 4.0運行TLS1.2

Windows XP不支持SSL/TLS 1.1/1.2
Source 1
Source 2

.NET 4.0不支持TLS 1.2
Source 3

的.Net 4.5 +不支持TLS 1.2,但不能安裝在XP上
Source 4Source 5

如果您使用您自己的證書 驗證它覆蓋ServerCertificateValidationCallback它的作品。爲什麼?到底是怎麼回事?它真的有用嗎?它的 似乎通過SSL進行通信。網絡操作保證我 服務器上沒有回退SSL/TLS。

替代方案:獲取自簽名的證書爲老年人TLS 1.0,不能讓這個 從CA了
使用其他C++庫或類似支持TLS 1.2 和.NET

更新1叫它: 我仍然不知道爲什麼ServerCertificateValidationCallback似乎工作。現在我正在查看特定XP SP3支持的密碼套件。我正在查看數據包並使用本文作爲指導。正如所指出的那樣,即使我找到一個替代庫,如果密碼套件沒有被提供或接受,我仍然沒有解決方案。

cipher suite guide

我曾嘗試SecureBlackBox取得了一些成功(是TLS1.2),但我無法得到它的授權來自證書權威的證書。 https://www.eldos.com/sbb/

更新2:學習了很多如何工作謝謝先生Ullrich et。人。

更新3:在這一點上,我正在尋找在XP機器上使用Apache代理進行TLS1.2 SHA256 CA驗證通信(非Windows堆棧)並讓我的.net 4.0通信與本地代理進行通信(在機器上),而任何離開機器的通信都得到妥善保護。

+0

請讓XP死亡。不要浪費你的時間和其他人的時間。 –

+2

這很有幫助謝謝。 –

回答

0

證書和證書的驗證與TLS版本無關。您可以使用與SSL 3.0 ... TLS 1.3相同的證書。但僅僅因爲您的證書可以與所有這些一起使用,並不會使您的本地TLS堆棧神奇地意識到TLS 1.2協議的工作原理。

如果您希望在Windows XP上支持TLS 1.2,請查看Windows TLS堆棧的外部,即查看OpenSSL,NSS和其他庫。看起來像是有一個庫提供對.NET中最近OpenSSL的支持,但我不確定這是否仍然可以在XP上運行。見https://github.com/openssl-net/openssl-net

+0

那麼它是通信SSL/TLS?如果是的話是什麼版本?它是SHA256嗎?我的理解是,您可以購買SHA256和TLS 1.2可以處理它的證書和TLS 1.0無法使用的證書。我錯過了什麼與這些無關的?我會看看你提到的鏈接,謝謝! –

+0

@JoeVolcano:*「我的理解是,您可以購買SHA256和TLS 1.2可以處理它的證書和TLS 1.0無法使用的證書。」* - 這種理解是錯誤的。此外,證書實際上獨立於TLS版本。您也可以使用帶有TLS 1.0的SHA-256簽名證書。任何限制只取決於實際的實施,而不是協議。 –

+0

因此,我應該能夠使用SHA 256的新證書,並配置我的服務器以允許TLS 1.0以及TLS 1.2,並且我可以與運行在xp Service Pack上的.net 4.0(TLS 1.0)模塊進行正常的SSL通信3? –