我已经在Windows Server 2008 R2上configuration了IIS,不允许使用TLS 1.0。 我已经通过设置这些registry项来重新启动
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进行testing。 (我不能使用更高版本的IE浏览器,因为networkingpipe理员的设置被locking)。 这是我如何configurationIE来强制TLS 1.0:
这是我如何configurationFireFox强制TLS 1.0:
我正在使用WireShark来确认正在使用的协议。 这是我在浏览器中强制使用TLS 1.0时的样子:
我还使用了下面build议的OpenSSL命令来确认TLS 1.0仍在使用中:
openssl s_client -tls1 -connect mysite.com:443
如果我在浏览器中强制使用TLS 1.1,这就是WireShark的样子:
问题是服务器configuration为不允许TLS 1.0,但是当我将浏览器configuration为仅使用TLS 1.0时,则正在使用TLS 1.0。 如果我configurationIE不允许任何版本的TLS,那么它会返回一个错误“ Internet Explorer cannot display the web page ”,这是我所期望的。 我的目标是防止服务器使用TLS 1.0,即使客户端仅支持TLS 1.0,因为TLS 1.0存在安全漏洞。 我怎样才能让IIS停止使用TLS 1.0?
如果请求使用以下openssl命令,则可以validation服务器是否将服务TLS 1.0。
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
您可以通过发出以下命令来testing对其他协议
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