在我的公司,我们有 Windows Server 2022。对于每个网站,我们都使用 Let's Encrypt 证书。这显示了一条警告,内容是:“尚未创建默认 SSL 站点。为了支持没有 SNI 功能的浏览器,建议创建一个默认 SSL 站点。”这导致我的网站无法运行。禁用选项:“需要服务器名称指示”允许网站开始工作。问题是,为什么禁用 SNI 会让网站开始工作?
在我的公司,我们有 Windows Server 2022。对于每个网站,我们都使用 Let's Encrypt 证书。这显示了一条警告,内容是:“尚未创建默认 SSL 站点。为了支持没有 SNI 功能的浏览器,建议创建一个默认 SSL 站点。”这导致我的网站无法运行。禁用选项:“需要服务器名称指示”允许网站开始工作。问题是,为什么禁用 SNI 会让网站开始工作?
您的网站无法正常运行,因为
那么对于那些旧的客户端/浏览器,就无法建立 SSL/TLS 连接。
您没有通过“禁用 SNI”来解决问题,因为 Windows HTTP API 不提供禁用 SNI 支持的方法。您所做的只是通过关闭 IIS 管理器对话框中的“需要服务器名称指示”来创建基于 IP 的映射。
要了解有关基于 IP 的映射的更多信息,可以阅读这篇文章。
禁用 SNI 意味着服务器不需要客户端在 TLS 握手中指定目标域名。这会隐式创建所请求的“默认站点”。不过,仅当服务器只服务一个域或所有域都应包含在同一证书中时,禁用 SNI 才有用。