修复IIS7.5的SSL安全问题

周末快下班的时候,同事跑来跟我说他们一个跑.net应用的服务器被安全部门查出有SSL安全问题,找我帮忙处理一下……

得,只能加个班了。虽然个人已经十几年不用Windows,然而偶尔还是会碰到需要解决Windows的问题,没办法。

看了一下系统,是Windows 10和IIS 7.5。先跑个SSL测试看看,结果果然是一个大大的红色F……

再看一下详情,主要的问题是开启了PCT 1.0/SSL 2.0/3.0这几个已经不安全的协议,以及用了RC4等几个已经不安全的算法。

嗯,这就是软狗们爱说的也很安全的Windows的默认设置。

要是其它系统或Web服务器,改起来是很简单的,但是Windows和IIS就需要研究一下了。放狗搜了一圈才找到相关的设置都在注册表里,收集了一下写了一个注册表文件:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\DES 56/56]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\NULL]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 40/128]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 56/128]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 40/128]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 56/128]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 64/128]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 128/128]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\PCT 1.0\Server]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server]
"Enabled"=dword:00000000 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client]
"DisabledByDefault"=dword:00000001

把不安全的设置全部关掉,然后导入注册表。

重启IIS再试……咦,居然还是不对。

再放狗一搜……居然要重启系统……为啥一个WebServer的设置需要重启系统。Windows果然是善于制造在别的系统中不存在的问题。

重启完再测试一遍,终于是黄C了,但是想配置到绿A恐怕是难了,因为看了一下,主要的警告项目是TLS 1.0,但是这个版本的Windows不支持TLS 1.1及以上,关了TLS 1.0就等于没法用SSL了。懒得再去研究怎么安装高版本的TLS,Windows太麻烦。

Linux+Nginx或Aapche随便配配都能绿A+,这才叫安全。

推送到[go4pro.org]