问题:当客户端使用 SHA-1 证书时,Windows 2012 上的 IIS 会选择 SHA-1 算法。即使服务器端证书是 SHA-256。因此 Chrome/Edge 不起作用。
在类似的 Windows 2016 设置中:IIS 使用适当的算法,一切正常。这是因为KB4516061修复了这个问题:解决了为与 Windows 服务器的安全(HTTPS/TLS)连接选择 SHA-1 哈希算法的问题。
(是的,我了解 SHA-1,但这是一个公司环境,并且一些用户的智能卡上仍然有 SHA-1 证书......)
问题:如何让它在 Windows 2012 上运行?也许是一些注册表设置?一些我不知道的修补程序 KB?
我尝试过的:
- IIS Crypto 中的“最佳实践”。
- 另外,在所有列表中禁用 SSL3.0 和 SHA-1。
HKLM\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL\00010003
- 从值中删除 SHA-1Functions
,但这会搞乱整个计算机。
答案1
解决此问题的方法是:
- 禁用除 TLS 1.0 之外的所有内容服务器IISCrypto 中的协议。不要触碰客户端协议。
- 由于 Edge 默认不允许 TLS 1.0 和 TLS 1.1,请应用以下步骤,它将在几个月后在版本 91 中停止工作。
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge]
"SSLVersionMin"="tls1"
另一种选择是在 Edge 中强制网站处于 IE11 兼容模式,IE11 的挑剔程度要低得多。