IIS强制使用強制使用 TLS 1.2 HTTPS连接

在微软Servere服务器IIS中,从早期关闭旧版 SSL 2.0/3.0 到开始对信息传输安全要求变严格,就继续要求关闭 TLS 1.0/1.1,但是有些旧的操作系统的服务、SOAP,一但强制改为 TLS 1.2 就会出现一些无法连接的问题,简单纪录一下处理的过程。

TLS是传输层安全协议(Transport Layer Security)的缩写,当使用电子邮件系统服务时,依靠它提供数据加密和完整性保护。 TLS 1.0及TLS 1.1已被证实具有安全风险,为确保连接机制的安全性,包含苹果、微软以及Google等自2018年陆续停止支持TLS 1.0及TLS 1.1协议。 停用TLS 1.0/1.1后,若您使用的浏览器不支持TLS 1.2,可能会看到「无法显示此网页」的错误画面,建议适当升级浏览器版本。

如何知道网站是使用的哪种连接呢?

如果你是使用 Microsoft Edge,可以浏览该网站的时按下键盘按键 F12,然后点击“安全”标签,就可以看到证书状态、SSL/TLS 版本与加密的方式。从下图中可以看到浏览器给予建议去掉过时的 AES-256-CBC 启用并 AES-GCM-based cipher suite。

方法一:在Microsoft Server服务器端强制使用 Strong Crypto

在记事本中粘贴下面的注册表内容,并另存为文件名 StrongCrypto.reg,然后双击运行导入到注册表表中,就会让电脑以较强的 StrongCrypto 方式执行,默认可能是“TLS 1.2”传输协议。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESOFTWAREWOW6432NodeMicrosoft.NETFrameworkv2.0.50727] “SystemDefaultTlsVersions”=dword:00000001
” SchUseStrongCrypto”=dword:00000001

[HKEY_LOCAL_MACHINESOFTWAREWOW6432NodeMicrosoft.NETFrameworkv4.0.30319] “SystemDefaultTlsVersions”=dword:00000001
” SchUseStrongCrypto”=dword:00000001

[HKEY_LOCAL_MACHINESOFTWAREMicrosoft.NETFrameworkv2.0.50727] “SystemDefaultTlsVersions”=dword:00000001
” SchUseStrongCrypto”=dword:00000001

[HKEY_LOCAL_MACHINESOFTWAREMicrosoft.NETFrameworkv4.0.30319] “SystemDefaultTlsVersions”=dword:00000001
” SchUseStrongCrypto”=dword:00000001

参考:https://docs.microsoft.com/en-us/troubleshoot/windows-server/windows-security/restrict-cryptographic-algorithms-protocols-schannel

然后重新启动 IIS管理控制台。

方法二:更新服务器.Net Framework到最新版本

我的例子原本是使用.Net Framework 4.5 然后改用4.6.1

然后修改 web.config,确认targetFramework 版本并增加 httpRuntime targetFramework 这一行,如果本来就存在就修改一个版本为4.6.1。

<system.web>
<compilation debug=”true” targetFramework=”4.6.1″/>
<httpRuntime targetFramework=”4.6.1″/>
</system.web>

方法三:安装使用 IISCrypto来设定修改TLS协议

IISCrypto是一个免费的IIS服务器安全管理工具,让管理员能够在Windows Server 2008、2012、2016和2019上启用或禁用启用TLS 1.1和1.2协议、密码、散列和密钥交换算法等功能。

进入下载页面

转载需保留链接来源:VCBeta.CN » IIS强制使用強制使用 TLS 1.2 HTTPS连接

赞 (2)