对于 DNS 和 SSL,我是否需要为每个 (DNS RR) A 记录提供单独的证书?

For DNS and SSL do I need a separate certificate for every (DNS RR) A record?

因此我们公司希望将我们的云服务器分离到单独的环境中,因此 www.foo.com、test.foo.com 和 dev.foo.com。 [我们甚至可能想将我们的子域分解成更多的子域。]我的老板想知道公司需要多少证书(用于 SSL)。

我已经深入研究了子域,看起来像是 DNS RR(域名服务器资源记录)的问题。我看过有关 A 记录和 CNAME 记录以及它们如何相互作用的注释。我认为 A 和 CNAME 记录的混合应该足以分离出我们的命名空间。

但是证书呢,我们是否需要为每条 A 记录提供 SSL 证书?我的老板热衷于降低成本(所有老板都一样)。

验证是根据您 URL 中的名称完成的。如果您的 URL 包含 IP 地址,则您必须拥有该 IP 的证书,如果您有名称,则该证书必须包含名称或与名称匹配的通配符。它不会执行任何 DNS 查找来查找不同的名称以进行验证。这些东西一起意味着例如:

  • 如果您将 URL 与 www.example.comfoo.example.comexample.com 和一些 IP 一起使用,则所有这些都必须包含在证书中,即使它们位于结束相同的服务器。不能通过将 www.example.com 设为 example.com 的 CNAME 或将 IP 的 RR 记录指向 example.com 来减少包含您在 URL 中使用的所有名称的要求.
  • 通配符只匹配最左边的一个标签。即 *.example.com 匹配 foo.example.com 但不匹配 example.comwww.foo.example.com。而且你只能有一个最左边的通配符,即没有 foo.*.example.com 甚至 *.*.example.com.
  • 您可以将多个主题组合到证书中,ypu 可以使用通配符或者您可以为每个名称使用不同的证书。如果您有不同的名称和相同的 IP 地址,最后一个选项可能会出现问题,因为客户端需要支持 Server Name Indication (SNI).