我在 IIS / Windows 2008R2 上托管一个带有通配符 ssl 证书的 ASP.NET 网站。虽然 Chrome 可以在我的网站上正常运行并显示绿色锁定 https 连接,但 https 详细信息提到“过时的加密”:
我认为这是由于 SHA1 造成的,chrome 在同一窗口中也提到了这一点。
但是,根据 Digicert 的 SSL 证书检查器,应该使用 SHA256:
现在我不确定发生了什么以及如何解决这个问题。这篇博客文章似乎描述了这个问题的解决方法,但解决方法似乎很模糊(1。步骤:安装 OpenSSL?),我无法想象这是在 Windows 2008 R2 上执行此操作的官方方法。
我应该如何着手摆脱 ssl 证书警告?
编辑:应用格兰特推荐的脚本后,我的 SSLabs 已从 C 改进为 A,Chrome 使用的是 TLS 1.2 而不是 1.0。但是,“过时的密码学”警告仍然存在。
导致问题的不是 SHA,而是 TLS 1.0。
您的域的 SSL 实验室报告提供了完整的故事。您的服务器仅支持 TLS 1.0,不支持 1.1 或 1.2。此外,它仍然支持 RC4 等过时的密码,并且不支持完美前向保密。
调整 IIS 以获得更好的安全性是完全可能的,但手动操作很痛苦。 这个由 Alexander Hass 编写的精彩脚本将设置各种注册表设置以禁用 IIS7.5 和 IIS8 的旧不安全加密方法。
运行脚本后,重新启动服务器,您应该在 SSLLabs 上获得 A 评级,并停止在 chrome 中收到警告。
我在一个新的 2012 R2 服务器上测试这个,当应用Alexander Hass 脚本(AH-Script)时,我仍然得到过时的密码:
我的 Chrome 43 支持以下密码套件:
所以使用的是:[C013],相当远。Chrome 似乎更喜欢 SHA256 和 GCM 而不是 CBC。
我使用 AH-Script 并将 [009E](从顶部第三个)添加到密码套件列表中,重新启动后我现在得到:
我试图让前两个 [C08B] 和 [C02F] 工作,但不能。
因此,通过修复脚本并运行它,我得到了一个
modern cryptography
.我删除了一个现有的密码,因为该字符串的长度是有限的,我的字符串的开头现在看起来像这样:
编辑:我刚刚在 sslLabs.com 上对此进行了测试,使用
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
给了我一个B
, 低于A
我以前的一个。所以你可能不想使用它。为什么 Chrome 对它的评价如此之高,我不知道?
Chrome 中的“过时加密”消息是因为服务器支持弱 Diffie-Hellman (DH) 密钥交换。更具体地说,这记录在Cipher Suite Black List 的 HTTP/2 规范中。
当您使用Alexander Hass 的 PowerShell 脚本(来自当前已接受的答案)时,它会包含这些在黑名单上的密码:
如果您查看Azure App Service,它使用以下密码套件顺序:
这在 Qualys SSL Labs(2016 年 7 月)中获得 A 级评级,并支持大多数常见浏览器的前向保密。
我发现了 Chrome 问题,因为在 Windows 10 上的本地 IIS Express 上,它会
ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY
在 Chrome 51 中返回错误消息,并在我的系统上配置了列入黑名单的密码套件。