我可以在同一域的多个主机名上使用单个(非通配符)SSL 证书吗?

我可以在同一域的多个主机名上使用单个(非通配符)SSL 证书吗?

如果我有test.example.com两个prod.example.com主机名,但域名相同,我可以在两台机器上使用相同的 SSL 证书吗?

过去,当我尝试使用prod.example.com证书test.example.com时,浏览器会发出主机不匹配警告,这让我相信我需要通配符(或者多个不同的证书)。(也许我的错误在于生成 CSR 而prod.example.com不是简单地生成example.com?)

但各 SSL 供应商的网站都提到需要通配符证书子域名,这根本不是我所用的。

他们的语言难道根本不正确吗?(我愤世嫉俗的一面想知道这是否有助于供应商销售更昂贵的证书......)

答案1

您需要一个支持“主题备用名称”字段的证书,并且在其中包含 test.example.com,以便它在您描述的示例中发挥作用。

除非是通配符证书(您明确表示您没有通配符证书),否则证书example.com不会像您描述的那样神奇地起作用。如果您不打算获得通配符,则需要列出每个子域的 SAN 字段。*.example.com

答案2

他们的语言难道根本不正确吗?

不,是你的。

如果我有test.example.comprod.example.com两个主机名,但域名相同)

这些都是不是相同的域名。它们都是分离域名恰好是子域名example.com

域名是任何DNS 中任何级别都存在的名称,而不仅仅是从域名注册商处获得的名称。

SSL 证书仅可涵盖:

  1. 确切的域名
  2. 如上所述,但附加“主题备用名称”,或
  3. 每个子域,即通配符证书。

因此,您不能仅获得证书example.com并让其自动覆盖子域。

答案3

首先要澄清的是:您使用的方式中没有子域 - 只有域。或者您可以说您拥有的任何域都是子域。根域是“。”。TLD“com。”是“。”的“子域”。“example.com。”是“com。”的子域……子域是在另一个域内定义的域。但这是相对的,而不是绝对的属性。

通配符证书的适用范围更广,并不是因为它们与域名证书不同,而是因为它们的暴露程度和被破解的可能性。您不是向 SSL CA 支付证书的“费用”,而是支付有限的保险。此保险仅在违规行为是由 CA 对您的证书及其链的处理不当造成的时才涵盖。

如果您只有几个子域名,那么为多个域名购买证书(使用主题备用名称的证书)会更便宜。如果您拥有一个域名的多个子域名,或者您希望添加未知数量的子域名,那么最好购买通配符证书。如果您拥有不同的域名(example1.com、example2.com、example1.us),那么您可以只使用 SAN 证书,或者为每个域名购买一个通配符证书。(例如,您不能为 *.com 购买通配符证书)。

使用 SAN 证书或通配符证书可能会降低配置的安全性,因为这会迫使您使用相同的侦听器,并且很可能使用相同的用户(您可以使用类似 apache 的 mod_suexec 之类的工具以不同的用户身份运行)。因此,如果一个站点受到攻击,可能会导致其他站点受到攻击。如果您拥有不同的证书,则可以以不同的用户身份运行这些应用程序,从而获得更好的安全性。

答案4

如果您的证书prod.example.com不是通配符证书,那么要在具有域名的服务器上使用它,test.example.com那么如何停止在%SystemRoot%\System32\drivers\etc\hosts文件中添加条目,为机器的 IP 提供test.example.com虚假的域名whatever.prod.example.com

这样,prod.example.com安装到test.example.com机器上的证书的验证就可以起作用,因为该文件证明了它正在寻找的hosts(假)主机名。prod.example.com

只是一个想法,因为我自己已经使用这种技术进行开发。

相关内容