2017-08-30 73 views
0

我有2臺桌面機(Windows 7)。一個是我的開發機器,另一個是我的測試機器。我做了一個桌面應用程序。它使用Web請求連接服務器。我正在使用TLS1.2進行連接,HTTPClient(C#)已用於編碼級別。無法在TLS 1.2客戶機上使用密碼套件

我的問題是,服務器期待TLS1.2連接,並只允許密碼套裝TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384。現在我的開發機器(它也有相同的操作系統,即Windows 7和相同的.Net框架4.6.1)工作正常,而我的測試機器沒有。

爲了進一步挖掘它,我收集了wireshark的日誌,我可以看到,在「客戶端問候語」和「服務器問候語」之後我可以看到一臺機器,它啓動密碼規範交換,但它不會在測試機器中發生。

我也試着看到密碼套裝的列表,看起來這個套件在兩臺機器上都可用。然而,我的測試機器中密碼套裝的數量較少(可能是缺少自動更新的情況)。我在這裏附上了所有屏幕截圖。有人可以指導我這裏出了什麼問題。

截屏的工作機: - For working machine

Cypher suit list for woking machine

回答

0

我遇到了類似的問題,我想可能是,試圖連接到需要TLS 1.2的服務......我的記憶很模糊,但我相信我的開發計算機沒有問題,我故意禁用了註冊表中的TLS 1.2以外的所有內容。但是從不同的機器,它不會連接,因爲HTTPClient在默認情況下試圖使用ssl3。我必須先做到這一點:

System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;