簡體   English   中英

Windows XP Embedded PosReady 2009支持TLS1.2

[英]Windows XP Embedded PosReady 2009 support for TLS1.2

默認情況下,Windows Embedded PosReady 2009上未啟用對TLS1.2的支持。

但微軟發布的KB4019276( https://support.microsoft.com/en-us/help/4019276/update-to-add-support-for-tls-1-1-and-tls-1-2-in-windows )這增加了這種支持。

我已將注冊表DWORD DisabledByDefault添加到文章中定義的下面的鍵中。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server

我已經在安裝了KB並重新啟動了注冊表之后重新啟動了設備,但它仍然無法正常工作。 下面是用於測試更改的TLS1.2代碼。

例外是

System.NotSupportedException: The requested security protocol is not supported.
   at System.Net.ServicePointManager.set_SecurityProtocol(SecurityProtocolType value)

代碼使用.net 3.5編譯,3.5是該設備支持的最高.net框架。

Console.WriteLine("Press Enter to send TLS1.2 to google.com");
Console.ReadLine();

System.Net.ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;   // Sets TLS1.2. This will only work if the OS supports it. 

string url = "https://www.google.com";
var req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "GET";

var resp = req.GetResponse();
var outStream = resp.GetResponseStream();
string output = "";
using (StreamReader rdr = new StreamReader(outStream))
{
    output = rdr.ReadToEnd();
}
Console.WriteLine(output);
Console.ReadLine();

對於低於4.5的.NET版本,Microsoft不支持TLS1.2,這些版本無法安裝在Embedded POS Ready 2009上。他們提供了非常糟糕的解決方案!

我處於同樣的境地。 但我現在可以在帶有.NET Framework 3.5應用程序的POSready2009上使用TLS1.2。

我的機器也安裝了.NET Framework 4.0。 然后應用所有“Windows Update”。 (如果某些更新因證書錯誤而失敗,請檢查“安裝或刪除Windows組件”中的[更新根證書])

安裝KB4019276之后,我嘗試了對regstory進行以下更改:

REG DELETE "HKLM\SOFTWARE\Microsoft\Internet Explorer\AdvancedOptions\CRYPTO\TLS1.2" /v OSVersion /f
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" /v DisabledByDefault /t REG_DWORD /d 0
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Client" /v Enabled /t REG_DWORD /d 0
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client" /v Enabled /t REG_DWORD /d 0
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client" /v Enabled /t REG_DWORD /d 0
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client" /v Enabled /t REG_DWORD /d 0

然后,您可以在Internet選項的“高級”選項卡中找到[使用TLS 1.2]。 打開[使用TLS 1.2]並關閉其他[使用TLS / SSL xx]。

暫無
暫無

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

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