当前位置 主页 > 服务器问题 > win服务器问题汇总 >

    在Windows服务器上启用TLS 1.2及TLS 1.2基本原理介绍

    栏目:win服务器问题汇总 时间:2018-08-05 09:52

    最近由于Chrome40不再支持SSL 3.0了,GOOGLE认为SSL3.0已经不再安全了。所以也研究了一下SSL TLS加密,给大家分享一下

    首先在这个网站上测试一下自己的服务器究竟处于什么水平。

    https://www.ssllabs.com/ssltest/

    测试结果显示是支持SSL3.0的并且不支持TLS 1.2。证书使用SHA1签名算法不够强。这点比较容易接受,因为Windows服务器默认并没有开启TLS1.2。

    要提高服务器的评级,有3点需要做。

    使用SHA256签名算法的证书。

    禁用SSL3.0,启用TLS1.2

    禁用一些弱加密算法。

    由于目前服务器使用的证书是近3年前购买的,正好需要重新购买,顺便就可以使用SHA256签名算法来买新的证书就可以了。在生产环境部署之前,先用测试机测试一下。

    根据这篇文章中的3条命令把证书颁发机构的签名算法升级上去。测试环境是Windows2012 R2,默认的签名算法是SHA1

    UpgradeCertification Authority to SHA256

    http://blogs.technet.com/b/pki/archive/2013/09/19/upgrade-certification-authority-to-sha256.aspx

    certutil -setreg ca\csp\CNGHashAlgorithm SHA256
    net stop certsvc
    net start certsvc

    然后,在服务器中添加注册表键值并重启已启用TLS1.2和禁用SSL3.0

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS1.2\Server\Enabled REG_DWORD类型设置为1.

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL3.0\Server Enabled REG_DWORD类型设置为0.

    重新启动服务器,是设置生效。

    由于测试机没有公网地址,所以去下载个测试工具,方便测试。

    http://www.bolet.org/TestSSLServer/

    可以下载到EXE或者JAVA版本的测试工具,方便的在内网测试服务器支持的加密方式。

    测试了一下,发现TLS1.2没有启用。

    wKioL1Yp9oXAg-ZJAACt5VcTxAA626.jpg

    难道是启用方法不对?于是开始检查各种服务器的日志,也的确发现了TLS1.2不能建立的报错了。

    wKiom1Yp9mjQ4CUnAADQdByxZFc388.jpg

    网上查了很多文章,也没有说什么解决办法。后来换了下证书,用回SHA1的证书,TLS1.2就能显示成功启用了。

    wKiom1Yp9nnD8efOAAFE7QycR3c991.jpg

    难道是证书有问题,于是就各种搜索SHA1证书和SHA256证书的区别,同时也测试了一些别人的网站,结果发现别人用SHA256证书也能支持TLS1.2. 难道是我的CA有问题?

    又研究了几天,也测试了2008 R2的机器还是同样的问题。正好新买的公网证书也下来了。就拿这张证书先放到测试服务器上测试,结果还是不行。但是别人的服务器的确可以啊。

    在此期间发现两篇比较好的文章,用Powershell来帮助我们启用TLS1.2以及如何设定服务器的加密算法顺序。

    Setupyour IIS for SSL Perfect Forward Secrecy and TLS 1.2

    https://www.hass.de/content/setup-your-iis-ssl-perfect-forward-secrecy-and-tls-12

    EnablingTLS 1.2 on IIS 7.5 for 256-bit cipher strength

    http://jackstromberg.com/2013/09/enabling-tls-1-2-on-iis-7-5-for-256-bit-cipher-strength/

    那么问题究竟出在哪呢?可能的问题,SHA256证书有问题?服务器不支持TLS1.2?然后根据Windows日志中的错误继续查找,都没能找到什么有用的信息。

    于是求助朋友,朋友发来一段信息。