在配置 Apache 服务器中的 SSL 和证书时,我遇到了一些二级域名问题,例如.com.pt.
如果我为某个域名申请证书,它将为和www.xpto.com
颁发。www.xpto.com
xpto.com
如果我要求证书,www.xpto.com.pt
它只适用于www.xpto.com.pt
但不适用于xpto.com.pt
(由 RapidSSL 颁发)
这其中有技术原因吗?
答案1
是的。对于初学者,我们可以将其分解成几个小部分:
当您请求带有服务器身份验证扩展的标准 x509 证书(通常称为 SSL 证书)时,您必须提供主题名称 (SN)。此 SN 必须与用户输入的内容相匹配,这样证书才能正常使用,且不会出现警告消息。
从技术上讲,证书只适用于您向 CA 提供的确切 SN。因此,如果您提出请求,www.example.com
则应该仅有的适用于该域名,它不应该适用于example.com
或任何事物除了www.example.com
。
但是,许多网站也可以使用备用域名。默认域名很常见。因此,在示例中www.example.com
;www
是主机名,example.com
是域名。证书是为 申请并颁发给 的www.example.com
,并且如上一段所述,这并不匹配example.com
(因为example.com
正在请求域 的默认主机 (A) 记录example.com
;显然,主机www
和默认主机在 DNS 意义上并不相同,甚至不必是同一个网站)。
大多数人实际上在两个主机名上都有相同的网站。此外,大多数用户都希望他们可以输入任何一个名称,然后就会出现正确的网站。因此,大多数 CA 不会颁发你请求的证书。他们实际上会根据您提供的 SN 颁发证书(如上所述),并且该证书还包含主题备用名称(SAN;顾名思义,它提供用户可以输入的备用名称,并且应该在没有警告消息的情况下接受它)。这通常仅在您请求二级域名(例如example.com
)时才有效,并且他们通常会忽略www
三级域名(例如www.example.com
成为example.com
证书的目的)。
通常,当您请求证书example.com
或www.example.com
您实际获得的证书的 SN 为example.com
且 SAN 为时www.example.com
。TLD 通常可以是任何内容。
但是,当您请求具有更具体名称的证书时,例如您的示例(来自问题),其中有4 个级别(或更多)的域名,它们不包括这个备用名称。
您可以专门请求一个。有时只需询问他们,他们就会免费颁发。其他时候,您必须请求 UCC 或多 SAN 证书(相同的东西,不同的名称)。通配符证书也可以使用,但它们往往更昂贵,并且通常需要更高程度的购买者身份验证。