无法禁用Windows Server 2012上的SNI

我有两个不同的“家庭”的相关网站,每个在同一台服务器上都有自己的UCC证书。

我将它们托pipe在同一台IIS服务器上,每个家庭使用一个IP地址。

这两个UCC证书都来自GoDaddy。

每个绑定(对于UCC中的每个SAN)都具有“要求服务器名称指示”禁用。

在这里输入图像说明

但是,当我尝试从Windows XP上的IE 8访问网站时,只有一个“家庭”的网站工作。 另一个就是不谈判。

当分析SSLLabs.com上的SSL时,我得到以下结果 – 告诉我“这个网站只能在支持SNI的浏览器上运行”。

但是这怎么可能呢! 我已经禁用了“要求SNI”每443次绑定。

我甚至看过applicationHost.config文件,并没有一个sslFlags="1"站点来表示这个设置是启用的。 是的,我也重新启动IIS。

这是怎么回事。 我很难过 我想知道如果我可以完全禁用服务器上的SNI,或者什么会触发这种事情发生。 我昨天做了几个月的Windows更新,但坦率地说,我认为这已经很长一段时间了,没有我意识到 – 基于IE8 XP客户端销售的$ 0 😉

编辑:我真的认为我的IIS已经损坏。 当我运行netsh http show sslcert每一个绑定的forms都是IP:port。 根据这篇文章,如果SNI启用,那么我会看到hostname:port ,我看不到这种格式的条目。 在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\SslSniBindingInfoHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\SslSniBindingInfo中也没有条目,但是如果我暂时添加一个SNI绑定,我确认在这里创build了一个新条目。

 IP:port : 10.0.0.2:443 Certificate Hash : d59a149e6678bc10d62093401c5b705cc23094be Application ID : {4dc3e181-e14b-4a21-b022-59fc669b0914} Certificate Store Name : My Verify Client Certificate Revocation : Enabled Verify Revocation Using Cached Client Certificate Only : Disabled Usage Check : Enabled Revocation Freshness Time : 0 URL Retrieval Timeout : 0 Ctl Identifier : (null) Ctl Store Name : (null) DS Mapper Usage : Disabled Negotiate Client Certificate : Disabled 

在这里输入图像说明

有一件事我没有提到,我正在使用IIS集中证书存储 – 事实certificate这一点很重要。

对于我的网站,让我们假装他们是以下组(IP是内部的,并通过防火墙映射)。

 Group A : red.com, blue.com, green.com (UCC certificate A) 10.0.0.1 Group B : cat.com, dog.com, mouse.com (UCC certificate B) 10.0.0.2 

A组是按我的意愿工作的组(不报告它需要SNI)。 B组没有在IIS 8上使用XP。

在我的证书存储中,我拥有每个证书的多个副本(只是文件系统中的pfx文件)。

red.com.pfx blue.com.pfx green.com.pfx等所有的网站

当我运行命令netsh http show sslcert ,事实certificate10.0.0.1:443只有一个条目,而10.0.0.2:443只有一个条目。 这是什么导致了每个站点的不同行为。

 IP:port : 10.0.0.1:443 Certificate Hash : d4a17e3b57e48c1166f18394a819edf770459ac8 Application ID : {4dc3e181-e14b-4a21-b022-59fc669b0914} Certificate Store Name : My Verify Client Certificate Revocation : Enabled Verify Revocation Using Cached Client Certificate Only : Disabled Usage Check : Enabled Revocation Freshness Time : 0 URL Retrieval Timeout : 0 Ctl Identifier : (null) Ctl Store Name : (null) DS Mapper Usage : Disabled Negotiate Client Certificate : Disabled 

为什么这个IP显示一个条目? 在另一个网站上,我也有一个额外的绑定,这个证书的IP地址相同(用于将非SSLredirect到SSL)。

我想IIS是假设如果你正在使用你使用SNI的集中式存储,所以它似乎暗中报告,它需要它 – 即使它真的没有。

我能够[终于]通过改变我的B组绑定之一 ,以明确引用证书,而不是只是在商店里找它,来解决这个问题。 当然,这样做的10.0.0.2:443条目然后出现在netsh http show sslcert列表中,并且该网站从XP工作得很好:-)

在这里输入图像说明

(我只需要为dog.com做这dog.com ,其他的动物网站仍然使用中央商店)。