正常检测到用户无法支持来自ASP.net的SHA256 SSL连接
Microsoft和Google都宣布了SHA1的结束。正常检测到用户无法支持来自ASP.net的SHA256 SSL连接
鉴于此,我们正在向SHA256申请SSL证书。由于SHA256 is not supported before XP SP3和about 17% of user use XP(至少其中一些不会使用SP3),将会有用户无法连接到我们的https页面。
我想要做的是让我的网站认识到他们无法通过SSL连接,并将它们发送到支持页面,解释为什么他们无法连接并告诉他们如何纠正它。
我们的网站运行ASP.NET IIS 6上
在我看来,应该有一个web.config设置或IIS设置,将做到这一点。有谁知道任何这样的设置? Chris Hutchinson's答案This SO Question似乎表明存在这样的设置。
这只是可能的解决方法的部分答案。
考虑到Windows XP上的Internet Explorer还有另一个已知的SSL/TLS限制,它不支持服务器名称指示(SNI),您可能可以根据服务器是否使用服务器在其最初的客户端Hello消息中添加名称扩展
您需要升级到IIS 8才能获得SNI支持(并且我必须承认,我不知道如何使用不使用服务器名称扩展名的情况下将其配置为具有不同证书的默认站点),但是此类检测至少从协议的角度来看应该是可行的。您仍然需要为该后备网站提供单独的SHA-1证书。
在这种情况下,来自XP上的IE的任何连接都将进入该备用站点(不幸的是,即使使用SP3)。
这样的XP机器上的Firefox应该能够处理SHA-256,因为它的实现与XP堆栈完全分离。
Chrome可能会有问题,因为它会使用服务器名称扩展名,但它也依赖于XP的证书管理来验证CA证书。我还没有尝试过,但我预计可能会出现问题。
这些肯定不是理想的解决方案,但您可能会发现这些妥协中的一些妥协取决于您的要求。
以上全部假设用户对您网站的入口点使用https://
。
如果用户通过http://
页面首次访问你的网站,你能有这样的网页,从AJAX请求您https://
现场检查它是否能够连接所有,并显示如果不能错误消息。这当然更容易,更通用(甚至不需要IIS升级)。您可能无法确切知道为什么AJAX请求无法连接到您的https://
站点(除了缺少SHA-256支持还有其他故障原因),但解释性消息说这是最可能的原因之一肯定会有帮助。
虽然我们想升级服务器,但是我们无法将IIS升级到其他任何东西。虽然AJAXS请求听起来可行,但我怀疑用户已经直接添加书签/创建了SSL页面的快捷方式,这意味着我将不会有机会检查。该页面的目的之一就是说“你可以尝试Firefox来连接”。 – 2014-12-01 21:31:48
如果IIS升级不可行,您可能可以在其之前放置另一台服务器(例如,Apache,Nginx等,尽管我没有查看该特定用例的必要配置)。 – Bruno 2014-12-01 21:42:41
因为我在州政府办公室工作,我们的活动受到政策和资金的严格限制。我们可以购买一台新的服务器,但我们的预算现在没有空间支付这笔费用(我们不能购买一台,我们必须从集中的IT租用一台服务器,该州是一家微软商店。) – 2014-12-02 15:03:01
一个想法是由失败的SSL/TLS连接返回的错误的自定义错误页面,但我似乎无法找到服务器是否返回错误代码。 – 2014-12-08 18:11:46