如何使用注册表项在具有 4.5 .Net Framework 的 Windows Server 2012 上禁用 TLS



任何人都可以提供一种解决方案来禁用TLS 1.0作为Windows Server 2012标准的默认协议,并在计算机上安装了4.5 .Net Framework。服务器上运行的应用程序具有 .NET 4.5 的目标框架,并且正在与仅启用了 TLS 1.2 的另一台服务器建立连接。

我尝试设置以下注册表,但它仍在调用TLS1.0:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client] "默认禁用"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server] "已启用"=字:00000001 "默认禁用"=dword:00000000

Microsoft的文档站点仅通过设置安全协议在代码中列出修复程序,如下所示

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

但是有没有办法通过注册表来实现这一点?

对于有类似问题的人:

以管理员身份打开 PowerShell 运行:[Net.ServicePointManager]::SecurityProtocol

请注意,响应Ssl3, Tls

在PowerShell中运行以下2个命令

Set-ItemProperty -Path 'HKLM:SOFTWAREMicrosoft.NetFrameworkv4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord
Set-ItemProperty -Path 'HKLM:SOFTWAREWow6432NodeMicrosoft.NetFrameworkv4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord

关闭PowerShell,以管理员身份重新打开,运行:[Net.ServicePointManager]::SecurityProtocol

现在注意输出,系统将在不使用此代码的情况下工作System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;

输出为:Tls, Tls11, Tls12

禁用操作系统上的Tls1,它将协商Tls12(如果可用(。

最新更新