我可以使用SSL网站的主机标头吗?

我想将证书应用于IIS上的一个站点。 目前,我使用一个IP地址,并使用主机头,给他们友好的名字。 我可以为我的SSL站点执行此操作,还是必须使用服务器名称?

如果每个主机名是单个基本域(mail.domain1.com,www.domain1.com)的子域,则可以将通配符证书与SSL主机标头一起使用。 如果它们不同(domain1.com和domain2.com),则可以使用统一通信证书。 有关如何在IIS中设置SSL主机头的信息,请参阅http://www.sslshopper.com/article-how-to-configure-ssl-host-headers-in-iis-6.html

严格地说,您不必使用通配符证书(而许多CA将拒绝发出一个证书),您可以使用证书,并在证书的subjectAltName扩展名中列出所有友好的主机名。 这样,您可以为所有主机名使用一个证书,并避免通配符证书。 无论如何, HTTPS RFCbuild议检查主机名称与subjectAltName(如果存在),而不是针对证书的主题。

虽然通用名称的使用是现有的惯例,但已被弃用,并鼓励证书颁发机构使用dNSName。

只要你的证书有一个通配符就可以了。

是的,您可以使用基于名称的虚拟主机,但有一些相当强的附加条件

  1. 如果你想拥抱最前沿,而不关心对旧浏览器的支持,你可以使用服务器名称指示(SNI)(如果你的Web服务器和客户端支持)。 这意味着客户端会通知服务器(当它第一次谈论SSL时)它认为应该与之交谈的那个名字。

  2. 如果您的网站列表变化不大,而且您不能依赖SNI,则可以使用匹配多个名称的SAN(主题备用名称)证书。 这个名字甚至没有任何共同的域名。 (看一下https://google.com/的证书,你会看到许多名字)

  3. 如果你想拥有很多名字(可能是dynamic生成的),那么就是一个通配符证书(“* .example.com”,它可以匹配* .example.com下的任何东西)。 虽然有限制。

  4. 否则,你需要有不同的IP地址,并在你的web服务器configuration中创build合适的绑定,说IP_x使用Certificate_x,这是通过公共地址咀嚼,是真正的最后的手段。