我的情况如下;
客户< - TLS 1.0- - >服务器进程< --- TLS 1.2 --->后端 现有客户端需要继续将TLS 1.0与我的服务器进程通信(它们将在另一天升级),但“服务器进程”需要使用TLS 1.2与后端通信。我已经对注册表进行了以下更改,但是我不确定是否需要启用所有3个版本1.0,1.1和1.2,假设握手阶段将根据需要选择最高(正确)版本的TLS。
我已创建TLS1.0,TLS1.1和TLS 1.2密钥,然后为每个密钥创建客户端和服务器密钥。在每个下面我将DisabledByDefault设置为0(32位DWORD)并将Enabled设置为1(32位DWORD)。因此,所有3个版本的TLS都启用如下。这是正确的做法,还是我只需要启用1.2版本(客户端和服务器)并禁用所有其他版本?
Registry Looks like this 我正在运行Windows Server 2008 R2 Service Pack 1并且它是一个非常脆弱的环境,因此我需要在重新启动之前首次正确运行。除了这些变化,我不需要应用任何补丁,是吗?
...\Protocols\TLS 1.2\Server] "Enabled"=dword:00000001
...\Protocols\TLS 1.2\Server] "DisabledByDefault"=dword:00000000
...\Protocols\TLS 1.2\Client] "Enabled"=dword:00000001
...\Protocols\TLS 1.2\Client] "DisabledByDefault"=dword:00000000
...\Protocols\TLS 1.1\Server] "Enabled"=dword:00000001
...\Protocols\TLS 1.1\Server] "DisabledByDefault"=dword:00000000
...\Protocols\TLS 1.1\Client] "Enabled"=dword:00000001
...\Protocols\TLS 1.1\Client] "DisabledByDefault"=dword:00000000
...\Protocols\TLS 1.0\Server] "Enabled"=dword:00000001
...\Protocols\TLS 1.0\Server] "DisabledByDefault"=dword:00000000
...\Protocols\TLS 1.0\Client] "Enabled"=dword:00000001
...\Protocols\TLS 1.0\Client] "DisabledByDefault"=dword:00000000
万分感谢你的帮助。
亲切的问候
格雷厄姆
答案 0 :(得分:0)
客户端密钥出站,服务器为入站连接。 因此,您可以决定启用哪些协议以及哪种连接类型。
我将按照上面的操作进行操作,然后禁用服务器密钥TLS1.0 这是InBound连接,并启用Client TLS1.0-> TLS1.2作为 您的后端仍然需要大声疾呼才能使用TLS1.0,并在以后进行处理。
如果它是.NET Framework应用程序,则还需要启用StrongEnCryption 都使用32位和64位,否则仅使用TLS1.0。
[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft.NETFramework \ v4.0.30319] “ SchUseStrongCrypto” = dword:00000001
[HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft.NETFramework \ v4.0.30319] “ SchUseStrongCrypto” = dword:00000001
Windows 2008 R2和更高版本能够使用TLS1.1和TLS1.2。较低的OS版本需要在前面安装PROXY。
祝你好运
答案 1 :(得分:0)
忘了Graham ....使用实例SSLAB
来验证前后的更改
如果该站点可公开访问...否则我有一个PowerShell脚本要检查
启用或不启用哪个版本:-),但是在应用和使用更改之前,您仍然需要REBOOT
服务器。