我们的组织正计划将 HTTPS 添加到我们的站点。因为我们的服务器只有一个 IP(这意味着我们只能使用一个证书),所以我们需要一个对我们组织中具有不同域名的所有站点都有效的证书。因此,证书不应包含域名。
它们在技术上是否可行,CA 是否签署了这些,以及浏览器如何处理它们?
我们的组织正计划将 HTTPS 添加到我们的站点。因为我们的服务器只有一个 IP(这意味着我们只能使用一个证书),所以我们需要一个对我们组织中具有不同域名的所有站点都有效的证书。因此,证书不应包含域名。
它们在技术上是否可行,CA 是否签署了这些,以及浏览器如何处理它们?
如果没有指定至少一个主题原则名称(域),您将无法获得 X.509 证书。任何有用的 CA 都不会让您拥有一个没有可以绑定到您可以证明自己拥有的域的证书。它们可以在您“拥有”它的级别使用通配符,因此 site1.domain.com、site2.domain.com 等都可以,但 site1.domain2.com 不会。
另一种方法是使用主题备用名称或 SAN [capable] 证书,这些可以包含一系列附加名称(各种类型),前提是您的证书提供者准备添加它们。对于您的用例,它们可以是域中特定站点的 FQDN(site1.domain.com、site2.domain.com 等),也可以是其他域(site1.domain2.com、site1.domain.net)的 FQDN。它们可用于添加其他类型的标识符,具体取决于您想要做什么,包括 IP 地址,但我不知道这些附加功能的实际支持程度。您可以包含的 SAN 标识符的数量也因证书提供商而异,Verisign 允许 19 个,而Digicert 最多支持 150 个。
从OpenSSL 文档:
是的 - 它们被称为通配符 SSL 证书,但它们仅适用于单个域 (*.domain.com。)
较新的证书还可以在证书中包含 SAN(主题备用名称),我相信这可以让您跨越域名边界(即 www.domain.com 和 www.domain2.com 的一个证书。)
不可以。SSL 证书受其通用名称 (CN) 的约束,而 CN 与域名而非 IP 地址相关联。
不幸的是,除了要求一堆IP之外别无选择。大多数 ISP 会为您提供额外的 4 块(2 块可用),而无需支付额外的商业计划费用。
与流行的看法相反,现在可以在同一个 IP 地址上拥有许多具有不同名称的 SSL 站点,但它要求服务器和客户端应用程序都支持 SNI(参见http://en.wikipedia.org/wiki/Server_Name_Indication信息)。
某些客户端(最明显的是 IE6,如果在 Windows XP 上运行 IE7/8)缺乏支持是不使用 SNI的主要原因,但如果这不会显着影响您的用户群,则可能值得考虑。Firefox 从版本 2 开始支持 SNI,IE7 和 IE8 在 Vista/2003/2008/7 下支持它(有关更多客户端支持详细信息,请参阅上面链接的 Wikipedia 文章)。
如果您的服务器是基于 Windows 并通过 IIS 提供 HTTP(S) 服务的另一个问题是 IIS 缺乏支持 - 但您可以通过安装 lighttp 或 nginx 作为真正的 http(s) 守护程序 (IIS) 的反向代理来解决这个问题.
当然,您仍然需要为每个 FQDN 提供一个单独的证书,或者至少为每组名称提供一个通配符证书 - 但它确实减少了您需要分配的 IP 地址的数量,如果这些是 GoodThing(tm)服务器所在的稀缺(或其他昂贵)资源。