我刚刚更换了我们几台服务器(全部托管在 IIS7 上)的 SSL 证书。根据我们 IT 经理的建议,我们使用了主题备用名称证书,而不是为每台服务器单独使用证书。我们从 Digicert 购买了此证书(它不是自签名的)。我已在我们的服务器上安装了该证书,网站加载时没有警告,并且在 Firefox 和 Internet Explorer 中显示良好的锁定。但是,Chrome 在锁定图标上显示一个红色的“x”,并在 URL 的“https”部分显示删除线字体。连接选项卡显示以下错误:
“该网站的身份尚未得到验证。您连接的服务器的身份无法完全验证。您连接到的服务器使用的名称仅在您的网络内有效,外部证书颁发机构无法验证其所有权。由于某些证书颁发机构无论如何都会为这些名称颁发证书,因此无法确保您连接到的是目标网站而不是攻击者。”
单击“证书信息”可显示完整的证书链(我们的证书、Digicert 的中级证书和 Digicert 的 CA 证书),所有三个证书的状态均显示为“此证书正常”。我已四次检查我在 URL 中使用的主机名是否与证书中的通用名称或主题备用名称之一完全匹配。我们在这些网站上拥有的先前证书是 *.mycompany.local 的通配符证书,而新的通用名称和 SAN 名称适用于 mycompany.local 域内的特定主机(即 eng-wiki.mycompany.local)。
Chrome 的解释听起来好像它检测到内部 DNS 服务器被用于解析服务器的 IP,但旧的通配符证书也是如此,如果这是声称无法验证身份的正当理由,那么它应该以相同的方式使用旧的通配符证书失败(但事实并非如此)。此外,这种解释意味着没有公司内部服务器可以验证其身份,这对安全造成的危害远大于好处,因为我们都必须教会用户忽略 Chrome 中的安全警告,尽管我们已经花费数百美元购买了合法证书以避免这种情况。
如能得到任何帮助我将非常感激。
谢谢!
- 编辑 -
今天我进一步挖掘,在 Chromium 源代码中搜索了错误消息的文本,发现该问题是由 Chrome 认为主机名不唯一而导致的。还有其他帖子报告了此问题像这个使用 SAN 证书时,如果使用短名称作为 URL,则无法使用 SAN 证书。但我使用的是完全限定的服务器名称,例如 wiki.mycompany.local
确定我的主机名不唯一的代码是这里,我看到一些评论讨论了 gTLD,我怀疑这是根本原因。我对全球顶级域名了解不多,但我的公司使用 .local 伪顶级域名。维基百科似乎说这不再是一个好主意(我无法创建 3 个链接,因为我的服务器声誉太低,请随意编辑它并将其设为链接 en.wikipedia.org/wiki/.local),尽管这是多年前我们的 IT 团队建立网络时推荐的做法。现在要求他们改变并不容易
我很想修改我的问题,从方程式中删除 SAN 元素,但当我对 mycompany.local 使用通配符证书时,我没有遇到此问题。因此,我仍然怀疑使用 SAN 证书是问题的一部分。仍然感谢任何帮助。
答案1
此外,这种解释意味着没有任何公司内部服务器能够验证其身份,这对安全造成的危害远远大于好处,因为我们都必须教会我们的用户忽略 Chrome 中的安全警告,尽管为了避免这种情况,他们已经花费数百美元购买了合法证书。
但无论证书多么昂贵,他们都无法通过第三方验证其身份。
只有一家公司可以在公共互联网上“拥有” contoso.com,并且该公司可以指定 server1.contoso.com 是什么,其他任何人都不能。
DigiCert(或任何人)可以验证 server1.contoso.com 的证书请求是否来自拥有 contoso.com 的同一家公司,因此(可能)不是欺诈性请求。他们还可以为 server1.contoso.com 颁发一个证书,然后不再颁发。
任何人都可以拥有 contoso.local。很多人可以同时拥有。Digicert 无法验证您是否拥有该名称的服务器。而且他们可以反复向不同的人颁发该名称的证书。
因此,安全警告是真正的警告 - Chrome 无法验证这是预期的 server1.contoso.local,因为完全相同的证书可以安装在世界各地一千台名为“server1.contoso.local”的计算机上。
如果您考虑将您的信用卡详细信息放入网站,.local 证书根本无法让您放心。
显然 IE 和 FireFox 对此有不同的看法,选择假装它没有问题,但事实上并非如此。
让您的服务器可以通过真实的 FQDN 访问,然后为其购买证书。
答案2
答案3
这相当简单,归根结底就是身份验证。正如 TessellatingHeckler 所说,安全警告是真实的,并且有一个解决方法。这不是 Chrome 的缺陷,而是 IE 或 FF 可能需要赶上的最佳安全实践的主动方法。有没有想过为什么有些 CA 仍在销售 5 年证书,而其他 CA 只销售 3 年证书?证书有效期也即将发生变化。
当颁发组织验证 (OV) 证书时,CA 必须验证该域名是否已在域名注册商处完全注册,并且企业有权使用该域名。它通过查看 WHOIS 和 D&B 来验证此信息。例如,任何 .com/.net/.edu。另一方面,.local 可以由任何人拥有,并且不能由任何 CA 进行身份验证。不确定 Digicert 是如何进行身份验证的,但不应该这样做。当您购买 SSL 证书时,您需要为身份验证支付的费用比其他任何费用都要多。
这是来自 CA Browser 论坛的一个链接,其中指出,到 2016 年 10 月,为了实现最佳安全实践,将不再使用所有内部名称。希望这能为您的 IT 管理团队提供一些启示,让他们开始采取积极主动的方法,而不是等到最后一刻。
https://www.cabforum.org/Guidance-Deprecated-Internal-Names.pdf
请问这个证书的有效期是几年?我之所以问这个问题,是因为目前有一个解决方法,您可以整理有关内部名称的服务器配置。生成 CSR 时,将通用名称输入为 www.yourcompany.com,并在 SAN 字段中输入“yourcompany.local”。这样,当 CA 进行身份验证时,它可以验证您是否拥有 www.yourcompany.com 的权限,并且在 SAN 字段中,yourcompany.local 的 IP 地址也将受到保护。此解决方法具有时效性,因为如果证书的有效期超过了强制更改,则没有 CA 会在这种情况下颁发 3 年的证书。
我希望这些信息能够有所帮助。