我已将 Windows Server 2008 R2 上的 IIS 配置为不允许 TLS 1.0。我通过设置以下注册表项并重新启动来完成此操作:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server\DisabledByDefault set to 1 (as a DWORD)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server\Enabled set to 0 (as a DWORD)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client\DisabledByDefault set to 1 (as a DWORD)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client\Enabled set to 0 (as a DWORD)
在客户端,我使用 FireFox 48.0 和 IE 9 进行测试。(我无法使用更高版本的 IE,因为网络管理员已锁定设置)。这是我配置 IE 以强制使用 TLS 1.0 的方式:
这是我配置 FireFox 以强制使用 TLS 1.0 的方法:
我正在使用 WireShark 来确认正在使用的协议。当我在浏览器中强制使用 TLS 1.0 时,它看起来是这样的:
我还使用了下面建议的 OpenSSL 命令来确认 TLS 1.0 仍在使用:
openssl s_client -tls1 -connect mysite.com:443
如果我在浏览器中强制使用 TLS 1.1,WireShark 看起来就是这样:
问题是服务器配置为不允许 TLS 1.0,但当我将浏览器配置为仅使用 TLS 1.0 时,则正在使用 TLS 1.0。如果我将 IE 配置为不允许任何版本的 TLS,则它会返回错误“ Internet Explorer cannot display the web page
”,这正是我所期望的。我的目标是即使客户端仅支持 TLS 1.0,服务器也无法使用 TLS 1.0,因为 TLS 1.0 存在安全漏洞。如何让 IIS 停止使用 TLS 1.0?
答案1
您可以使用以下命令验证服务器是否会在请求时提供 TLS 1.0openssl命令。
openssl s_client -tls1 -brief -connect example.com:443
如果连接成功,您将看到类似的内容:
CONNECTION ESTABLISHED
Protocol version: TLSv1
Ciphersuite: DHE-RSA-AES256-SHA
Peer certificate: CN = example.com
Server Temp Key: DH, 8192 bits
如果连接失败,您将看到:
write:errno=104
您可以通过以下命令测试对其他协议的支持:
TLS v1.1:openssl s_client -tls1_1 -brief -connect example.com:443
TLS v1.2:openssl s_client -tls1_2 -brief -connect example.com:443
SSL v3:openssl s_client -ssl3 -brief -connect example.com:443
答案2
问题是 SSL 实际上是由负载均衡器处理的,而不是由服务器处理的,因此必须在负载均衡器上禁用它。
答案3
我知道这已经过时了,但这可能对其他人有帮助。如果启用了 FIPS,它将覆盖 TLS 1.0 设置并启用 TLS 1.0。必须禁用它才能禁用 TLS 1.0。希望这对某人有所帮助。