基于主机头的 SSL 证书选择:可能吗?

DrS*_*ker 17 ssl web-hosting https ssl-certificate

Web 服务器是否可以根据传入连接的主机标头选择要使用的 SSL 证书,或者该信息是否仅在建立 SSL 连接后可用?

也就是说,我的网络服务器是否可以在端口 443 上列出并在请求https://foo.com 时使用 foo.com 证书,如果请求https://bar.com或我正在尝试使用 bar.com 证书不可能的事情,因为服务器必须在知道客户端想要什么之前建立 SSL 连接?

War*_*ner 23

从历史上看,你的第一句话是准确的。现在,有多种选择:

  • 如果子域在同一域中,则为通配符证书。
  • SAN/UCC 证书,用于指定证书的替代名称,从而能够提供多个证书。
  • SNI 被引入以在 Host 标头之后建立 SSL 连接。但是,由于它是较新的,因此支持有限。

我和其他人已经在 ServerFault 上多次回答了这个问题。除非您有特定问题,否则我建议您搜索更多详细信息。

  • 我去寻找,找不到任何东西;这可能是只有在您知道答案的情况下才能轻松搜索的内容之一,因此您可以将其包含在搜索词中。谢谢。 (4认同)
  • SNI 不会在 Host 标头之后建立 SSL 连接,而是在 SSL 握手中包含主机名。如果您不是 SSL 开发人员,这并不重要。 (4认同)
  • 如果 ServerFault 上已有答案,最好能链接到它们。 (3认同)

use*_*686 5

扩展 Warner 的回答:CAcert 的页面Vhost Task Force比较了在单个服务器上使用多个域的几种方法。我个人使用Server Name Indication