如果没有 SNI,则不会返回服务器问候语

如果没有 SNI,则不会返回服务器问候语

我设置了一个启用了代理服务器 (squid) https_port。当我使用类似 的 URLdomain.com或甚至使用主机别名(即手动写入/etc/hosts)向此服务器发送请求时,没有任何问题,一切正常。使用服务器的 IP 地址向服务器发送请求时会出现问题。在这种情况下,请求在Client Hello阶段后挂起。

这两种情况之间的唯一区别是第二种类型的请求不包含服务器名称指示(SNI)扩展,但我见过其他没有 SNI 的示例。

我应该怎么做才能使 TLS 握手对所有请求都有效?

答案1

信噪比是一种专门设计用于允许服务器在单个 IP 地址上托管具有不同证书的多个站点的技术。但为了做到这一点,HTTP 请求必须包含host 标题

通常,当 Web 服务器管理员设置 SNI 时,他们会选择一个默认主机,当没有提供主机标头时使用,就像通过 IP 地址发出请求的情况一样。详细信息取决于相关的 Web 服务器,但您应该能够找到您正在运行的 Web 服务器的说明。

请注意,无论您的代理实现如何,此问题都会影响配置为使用 SNI 的服务器。该问题和修复没有直接关系。只是有些网站您无法通过 IP 使用。

相关内容