我想将证书应用于 IIS 上的一个网站。目前,我使用单个 IP 地址并使用主机标头来为它们赋予友好名称。我可以为我的 SSL 网站执行此操作吗?还是必须使用服务器名称?
答案1
如果每个主机名都是单个基础域的子域(mail.domain1.com、www.domain1.com),则可以使用带 SSL 主机标头的通配符证书。如果它们不同(domain1.com 和 domain2.com),则可以使用统一通信证书。请参阅http://www.sslshopper.com/article-how-to-configure-ssl-host-headers-in-iis-6.html有关如何在 IIS 中设置 SSL 主机头。
答案2
严格来说,您不必使用通配符证书(许多 CA 会拒绝颁发通配符证书),您可以使用证书的 subjectAltName 扩展中列出的所有友好主机名的证书。这样,您就可以为所有主机名使用一个证书,并避免使用通配符证书。无论如何,HTTPS 请求参考建议根据 subjectAltName 检查主机名(如果存在),而不是根据证书的主题检查。
尽管使用通用名称是现有做法,但已被弃用,并鼓励认证机构改用 dNSName。
答案3
只要你的证书有通配符在里面。
答案4
是的,您可以使用基于名称的虚拟主机,但有些相当严格的附文
如果您想要拥抱前沿技术,并且不关心对旧浏览器的支持,则可以使用服务器名称指示 (SNI)(如果您的 Web 服务器和客户端支持)。这意味着客户端将通知服务器(当它第一次开始谈论 SSL 时)它认为应该与哪个名称进行对话。
如果您的网站列表变化不大,并且您无法依赖 SNI,那么您可以使用与多个名称匹配的 SAN(主题备用名称)证书。这些名称甚至没有任何共同的域。(请查看证书https://google.com/你会看到很多列出的姓名)
如果您想要拥有很多名称(可能是动态生成的),那么可以使用通配符证书(“*.example.com”,它将匹配 *.example.com 下的任何内容)。但是这样做有限制。
否则,您需要有不同的 IP 地址,并在您的 Web 服务器配置中创建合适的绑定,以表明 IP_x 使用 Certification_x,这会利用公共地址,这实际上是最后手段。