IIS 8.5 上的 SNI 和 SSL

Posted

技术标签:

【中文标题】IIS 8.5 上的 SNI 和 SSL【英文标题】:SNI and SSL on IIS 8.5 【发布时间】:2017-01-17 07:04:30 【问题描述】:

我有一个在 IIS 上运行的网站,它需要两个 SSL 证书,一个用于主网站域,一个用于来自 CDN 的流量(资产来自不同的域名)。两者都使用 SSL。

因此,我在 IIS 中创建 HTTPS 绑定时使用了服务器名称指示选项。

网站运行良好,我知道使用 IE6/Windows XP 的用户可能会遇到问题,但我们没有任何/很多用户使用该组合访问我们的网站,所以这不是问题。但是,它是一个电子商务网站,可以接收来自 PayPal 和 WorldPay 的回发/回调。这是我们遇到问题的地方。似乎 PayPal 或 WorldPay 的回发付款信息机制都无法理解 SNI,因此我们不会收到付款已完成的通知。

我不确定选项是什么。 IIS 告诉我创建一个默认 SSL 站点,但我在网上找不到任何关于我应该创建什么或它有什么好处的说明。

我是否走在正确的道路上?任何人都可以就 a) 默认 SSL 站点是否可以解决此问题以及 b) 如何创建默认 SSL 站点提供任何建议?

提前感谢您的宝贵时间。

亲切的问候, 点开发

【问题讨论】:

您应该使用 Wireshark 之类的工具来更好地了解导致 PayPal 失败的确切原因。通过分析 SSL/TLS 握手,可以找到原因,然后得出如何修复的结论。不过,解决方法是创建一个捕获所有默认网站并为其提供基于传统 IP 的 SSL 绑定(不是 SNI),以便它可以处理不符合 SNI 的客户端。 嗨 Lex,感谢您的评论。我将研究 Wireshark。默认网站,它是否指向与网站相同的主目录,但这次只是在 HTTPS 的 IP 地址上绑定 SSL? 【参考方案1】:

您不必将所有网站都配置为需要 SNI。

根据您的说法,您来自 PayPal 和 WorldPay 的回调在您的主站点上,是吗?

如果是这种情况,您只需在主站点上编辑绑定,使其不需要 SNI,并确保将其设置为“全部未分配”而不是特定 IP 地址(否则它将进入SNI 站点的方式)。

【讨论】:

以上是关于IIS 8.5 上的 SNI 和 SSL的主要内容,如果未能解决你的问题,请参考以下文章

自定义 ServiceHostFactory 在 Windows Server 2012 和 IIS 8.5 上失败

如何在不同域中的远程服务器上启动或停止IIS-8.5网站

iis 8.5 中用于 mvc 和 webapi 应用程序的路由

Windows 2016 IIS 上 HTTP/2 的混合模式

如何过去一起重定向301重写iis-8.5?

IIS 7.5、8.0、8.5 HTTP 错误 403.14 - 安装干净的 Windows 后被禁止