我们的主要网站使用由 comodo 颁发的 HTTPS 证书。因此,我们有两个 CAA 记录,如下所示:
@ CAA 0 issue "comodo.com"
www CAA 0 issue "comodo.com"
我们有多个子域名,其 HTTPS 证书由 letsencrypt 提供。CAA 记录示例如下:
test1 CAA 0 issue "letsencrypt.org"
test2 CAA 0 issue "letsencrypt.org"
other CAA 0 issue "letsencrypt.org"
目前,当我们有一个新的子域名时,除了 A 记录之外,我还必须创建一个新的 CAA 记录。我不能像这样使用通配符作为子域名吗?
* CAA 0 issue "letsencrypt.org"
(我已经测试过了,但是没有用)
需要说明的是:我不是在谈论通配符域名证书。
答案1
CAA 记录由子域名继承 - 正如 Håkan Lindqvist 指出的那样,您无需在子域名下发布它们。忽略子域名,您可以在您的域名上拥有多个 CAA 记录,例如
@ CAA 0 issue "comodo.com"
@ CAA 0 issue "letsencrypt"
issuewild
如果你想授权 letsencrypt 颁发通配符证书,那么你正在寻找的上下文是这样的,例如
@ CAA 0 issuewild "comodo.com"
@ CAA 0 issuewild "letsencrypt"
就我个人而言,我只在我的域名上发布一条CAA
记录,不会在子域名上发布它们,并且我对子域名使用非通配符 letsencrypt 证书,没有任何问题。
PS 通配符 DNS 记录仅解析不存在的子域,这通常被误解。这就是 Håkan Lindqvist 提到这一点时所说的。继承使您可以使用@ CAA
而不是* CAA
。
答案2
从技术上来说,通配符记录确实是可以存在的CAA
(而且它确实“有效”)。
然而,DNS中通配符的定义方式可能对你的用例没有实际用处,因为通配符只适用于以下分支中的名称:不存在。
假设您至少拥有所有这些要为其获取证书的名称的地址记录 ( A
/ AAAA
),并且有了这些地址记录,通配符就不再适用了。因此,通配符几乎肯定不适合您想要做的事情。
我认为您要做的就是CAA
为所有这些名称添加记录,或者采用上面级别上不太严格的策略(即,您示例中的 comodo + letsencrypt)并利用规范中的内置策略继承CAA
。