首先,对于那些可能认为这个问题之前已经被问过很多次了,所以它是一个无用的重复......
- 我(目前)无法对其他问题发表评论,因此我唯一的选择就是提出新问题。
- 我已经在线搜索并阅读了不同门户网站上的以下文章,但仍然无法解决我的特定问题:
微软官方文章这里以及 TechNet 文章第1条和文章 #2。然后我去寻找更多信息微机化和Stackchange我也读过这个顺丰快递,我原本想在这里发表评论。不幸的是,一切都无济于事……
那么问题是什么?这是在 MS Windows Server 2008 SP2 上启用 TLS 1.1/1.2 时出现的著名问题,对我来说,这简直是一场噩梦。我有一台运行 MS Windows 2008 SP2 的虚拟机,操作系统已打过补丁,并且是最新的。我尝试安装这些 Microsoft 独立更新 KB4019276 和 KB4056564,正如 MSFN 文章中的发帖人所建议的那样,但我无法安装它们(x86 和 x64,也尝试了所有补丁日期,而不仅仅是最新的)。我从操作系统得到了以下响应:此更新不适用于你的系统。然后我想,这些补丁肯定在更早的时间点已经安装了,而且确实如此——KB4056564 已经安装了。所以我按照上面提到的 SF 文章手动修改注册表。我修改了注册表,重新启动了虚拟机,并想配置 MSIE 9 以允许 TLS 1.1/1.2 安全协议——令我吃惊的是,这些无法使用。
我需要尽快启动并运行支持 TLS 1.1/1.2 的虚拟机,并且已经花费了很多天的研究和试验来解决这个问题,但我仍在寻找解决方案......如果你们能帮助我,无论是指明正确的方向还是提供解决这个噩梦般问题的解决方案,我将非常非常感激...!
编辑#1:目前我不允许使用 IISCrypto 应用程序或任何其他第三方应用程序来访问和修改机器的注册表或整体系统配置...
编辑#2:以下是我手动创建的注册表项。我还尝试过将 Enabled 值设为 0xFFFFFFFF,并重启了机器,但此更改仍然没有效果,因此我将值重新设为 0x1。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client
DisabledByDefault REG_DWORD 0x0
Enabled REG_DWORD 0x1
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server
DisabledByDefault REG_DWORD 0x0
Enabled REG_DWORD 0x1
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client
DisabledByDefault REG_DWORD 0x0
Enabled REG_DWORD 0x1
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server
DisabledByDefault REG_DWORD 0x0
Enabled REG_DWORD 0x1
编辑#3:在详细审查了过去两年内机器上安装/应用的更新/补丁后,我发现KB4019276已于 2017-11-27 申请KB4056564已于 2018-06-03 申请。对于KB4339093我不确定 - 我会搜索此更新,但我认为如果补丁超过一个月就会应用它,因为机器至少每月更新一次。
编辑#4:机器上运行的 MS Internet Explorer 版本为 9.0.8112.16421,更新版本 9.0.95(KB4339093)。@bcs78,您在评论中提到的 IE 更新已于 2018-07-30 应用。
编辑#5:我无法导出系统注册表的请求部分(命令reg query "HKLM\SOFTWARE\Microsoft\InternetExplorer\AdvancedOptions\CRYPTO\" /s
),因为我收到错误ERROR: The system was unable to find the specified registry key or value.
。似乎所有注册表项都以HKLM\SOFTWARE\Microsoft\InternetExplorer
某种方式“锁定”了...但这种“锁定”效果也存在于另一台机器(使用 Win2k12R2)上,其中 TLS 1.1/1.2 通信正常运行。
我可以直接从注册表编辑器导出相关的加密密钥:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\AdvancedOptions\CRYPTO\TLS1.1]
"UncheckedValue"=dword:00000000
"CheckedValue"=dword:00000200
"PlugUIText"="@C:\\Windows\\System32\\inetcpl.cpl,-6800"
"Mask"=dword:00000200
"RegPoliciesPath"="SOFTWARE\\Policies\\Microsoft\\Windows\\CurrentVersion\\Internet Settings"
"RegPath"="SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Internet Settings"
"HKeyRoot"=dword:80000001
"HelpID"="iexplore.hlp#50511"
"DefaultValue"=dword:00000200
"ValueName"="SecureProtocols"
"Text"="TLS 1.1"
"Type"="checkbox"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\AdvancedOptions\CRYPTO\TLS1.2]
"UncheckedValue"=dword:00000000
"CheckedValue"=dword:00000800
"PlugUIText"="@C:\\Windows\\System32\\inetcpl.cpl,-6801"
"Mask"=dword:00000800
"RegPoliciesPath"="SOFTWARE\\Policies\\Microsoft\\Windows\\CurrentVersion\\Internet Settings"
"RegPath"="SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Internet Settings"
"HKeyRoot"=dword:80000001
"HelpID"="iexplore.hlp#50511"
"DefaultValue"=dword:00000800
"ValueName"="SecureProtocols"
"Text"="TLS 1.2"
"Type"="checkbox"
注册表的 32 位部分也存在完全相同的内容:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\AdvancedOptions\CRYPTO
。
我终于可以在机器上使用 IISCrypt 了(它已从生产场中撤下),但我只能看到 TLS 1.0 作为受支持的 SChannel 协议 - 而不是 TLS 1.1 或 TLS 1.2。有趣的是,在今天修补机器后,“Internet 选项”对话框开始在“高级选项卡/安全”部分显示所有启用的 TLS 协议(TLS 1.0、TLS 1.1 和 TLS 1.2)。
SSL Labs 的测试结果与之前相同:SSL Labs: "The server supports only older protocols, but not the current best TLS 1.2. Grade capped to C"
...
那么,为了最终激活这些 TLS 协议还需要做什么……?
提前谢谢了!
拉马纳戈姆