【发布时间】:2018-05-14 20:37:13
【问题描述】:
在 Windows Server 2012R2 上运行
我正在尝试在 IIS 上禁用 TLS 1.0,因为客户端有一个站点扫描器,它会将其作为安全问题突出显示。
我设置了一个干净的测试服务器,并且应用程序运行良好,直到我禁用 TLS 1.0。
我更新了所有适当的设置:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
"SchUseStrongCrypto"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
"SchUseStrongCrypto"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727]
"SchUseStrongCrypto"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319]
"SchUseStrongCrypto"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client]
"Enabled"=dword:00000000
"DisabledByDefault"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server]
"Enabled"=dword:00000000
"DisabledByDefault"=dword:00000001
[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]
"Enabled"=dword:ffffffff
"DisabledByDefault"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server]
"Enabled"=dword:ffffffff
"DisabledByDefault"=dword:00000000
[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]
"Enabled"=dword:ffffffff
"DisabledByDefault"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]
"Enabled"=dword:ffffffff
"DisabledByDefault"=dword:00000000
在事件查看器中,我得到:
已生成致命警报并将其发送到远程端点。这可能 导致连接终止。定义的 TLS 协议 致命错误代码为 70。Windows SChannel 错误状态为 105。
如果我仅恢复 TLS 1.0 的注册表设置(启用,而不是默认禁用),一切都会再次正常。
在system.web中使用:
<httpRuntime targetFramework="4.7.2" />
我错过了什么?
【问题讨论】:
-
由于您已禁用 TLS 1.0,因此需要更新代码以通过 TLS 1.2 进行通信,然后可以添加以下代码行,然后再向服务器上托管的服务 System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
-
@MohsinMehmood 这是一个常规的网络应用程序。网站正在通过 IE 访问。当站点在启用 TLS 1.0 的情况下运行时,它仍然显示 IE 已通过 TLS 1.2 连接。
-
使用 IISCrypto 工具确保启用 TLS 1.2。该工具将为启用多个版本的 TLS 提供一个很好的 GUI。另外,使用ssllabs.com/ssltest 测试您的网站
-
我会尝试通过使用静态文件测试一个简单的网站来让 ASP.Net 脱离循环。这很可能是 IIS 问题。
-
尝试仅对服务器禁用 TLS 1.0。毕竟这是扫描仪检测到的。我猜即使启用了客户端 1.0,它仍然会尝试 1.2 连接。
标签: asp.net ssl iis-8 windows-server-2012-r2