![Firefox 显示我们的证书的“安全连接失败”页面](https://linux22.com/image/657080/Firefox%20%E6%98%BE%E7%A4%BA%E6%88%91%E4%BB%AC%E7%9A%84%E8%AF%81%E4%B9%A6%E7%9A%84%E2%80%9C%E5%AE%89%E5%85%A8%E8%BF%9E%E6%8E%A5%E5%A4%B1%E8%B4%A5%E2%80%9D%E9%A1%B5%E9%9D%A2.png)
Firefox 不喜欢我们的内部证书。我正在尝试找出原因...
总结:我们的内部 IIS 服务器由我们的内部 CA 签名,显示“安全连接失败”页面,技术细节显示“连接未加密”。证书安装在 Firefox 的内部证书存储中。
这是我们的证书https://www.highlands.edu/site/is-certification-authority 遗憾的是,我们无法公开上述内部服务器,让您查看确切的错误页面。不过这里有屏幕截图。https://i.stack.imgur.com/YBACD.jpg
奇怪的是,我们的内部证书在 Apache 上运行良好(说明问题出在 IIS 上)。但是,我们的 IIS 服务器使用任何其他证书(例如第三方证书 (GeoTrust) 或自签名证书)都可以正常运行(说明问题出在证书上)。
如果我添加一个例外,例如将 about:config 页面下的 someinternal.highlands.edu 添加到“security.tls.insecure_fallback_hosts”,那么该网站就可以正常工作。
如果我查看 IIS 错误日志,当我使用 FireFox(但不是 Chrome、IE、Safari 等)时,我会反复看到以下两个错误
从远程客户端应用程序收到 TLS 1.2 连接请求,但服务器不支持客户端应用程序支持的任何密码套件。SSL 连接请求失败。
生成了致命警报并发送到远程端点。这可能会导致连接终止。TLS 协议定义的致命错误代码为 40。Windows SChannel 错误状态为 1205。
现在,在我上面发布的专辑中(https://i.stack.imgur.com/YBACD.jpg),最后两个屏幕截图显示了 Wireshark 捕获的数据包。看来 Firefox 不支持 SHA512,这篇文章对此表示支持(http://blogs.technet.com/b/silvana/archive/2014/03/14/schannel-errors-on-scom-agent.aspx)。我不确定这是否正确,而且 Firefox 放弃支持似乎是一件愚蠢的事情(这以前是有效的),特别是如果世界上所有其他浏览器都支持这一点的话。
这就是我们发现的所有问题,以及我的一些假设。有人知道 Firefox 到底出了什么问题吗?我找不到任何可以验证我假设的东西,而且我仍然不确定这是我们在 IIS 中配置错误、我们的内部 CA 还是 Firefox 的一个错误。
答案1
首先,您的服务器上安装了此更新吗?
https://support.microsoft.com/en-us/kb/2973337
在 Windows 中,默认情况下禁用 TLS 1.2 上的 SHA512 作为哈希算法。上述补丁将启用它并有望解决您的问题。
您的第三方证书现在起作用的原因是它们不会使用 SHA512 哈希(根据我的经验,这种情况很少见,人们只是从 SHA-1 迁移而来,通常会转向 SHA-2 的 SHA256 变体)。
如果失败那么...
当您尝试连接 Firefox 并发布 TLS 客户端 hello 密码套件列表的输出时,您可以运行另一个 Wireshark 跟踪。
那么,您能否发布您的 IIS 服务器当前配置为接受的密码套件列表?
我怀疑没有同时出现在两个列表中的密码套件。
为了获取服务器端列表,我通常使用此处“列出支持的密码套件”下提供的代码的编译版本;
https://msdn.microsoft.com/en-us/library/windows/desktop/bb870930(v=vs.85).aspx
如果您想使用,我已经将我编译的版本上传到 Dropbox(风险自负,我不承担任何责任。但它是安全的!)
https://www.dropbox.com/s/mvajmebtyilgics/listciphers.exe?dl=0
如果确实如此,那么您将需要重新配置服务器以接受更广泛的密码套件列表。在这种情况下,最适合这项工作的工具是 IIS Crypto。我始终建议使用“最佳实践”按钮,只需单击一下即可根据当前最佳实践重新配置您的服务器。尽管如此,一如既往,先测试一下!
https://www.nartac.com/Products/IISCrypto/
令人好奇的是,Firefox 没有在客户端问候中宣传 SHA512 哈希算法。我刚刚使用 Firefox 37 在我的工作站上验证了同样的行为。我会对这一点进行更多挖掘,因为我很好奇……