我可以为所有子域创建 CAA 记录吗

doe*_*man 7 domain-name-system

我们的主网站使用由 comodo 颁发的 HTTPS 证书。所以我们有两个这样的 CAA 记录:

@        CAA        0 issue "comodo.com"
www      CAA        0 issue "comodo.com"
Run Code Online (Sandbox Code Playgroud)

我们有多个子域,带有由 letencrypt 提供的 HTTPS 证书。示例 CAA 记录如下:

test1    CAA        0 issue "letsencrypt.org"
test2    CAA        0 issue "letsencrypt.org"
other    CAA        0 issue "letsencrypt.org"
Run Code Online (Sandbox Code Playgroud)

目前,当我们有一个新的子域时,除了 A 记录之外,我还必须创建一个新的 CAA 记录。我不能像这样使用通配符作为子域名吗?

*    CAA        0 issue "letsencrypt.org"
Run Code Online (Sandbox Code Playgroud)

(我已经测试过这个,但它不起作用)

为了记录:我不是在谈论通配符域证书。

小智 12

CAA 记录由子域继承 - 正如 Håkan Lindqvist 所指出的,您不需要在子域下发布它们。忽略子域,您的域中可以有多个 CAA 记录,例如

@        CAA        0 issue "comodo.com"

@        CAA        0 issue "letsencrypt"
Run Code Online (Sandbox Code Playgroud)

issuewild 如果您想授权 letencrypt 颁发通配符证书,则是您正在寻找的上下文,例如

@        CAA        0 issuewild "comodo.com"

@        CAA        0 issuewild "letsencrypt"
Run Code Online (Sandbox Code Playgroud)

就我个人而言,我只CAA在我的域中发布一条记录,我不会为子域发布它们,并且我对子域使用非通配符 letencrypt 证书没有问题。

PS 通配符 DNS 记录仅解析不存在的子域,这通常被误解。这就是 Håkan Lindqvist 在提到这一点时所说的。继承使您可以使用@ CAA 代替* CAA.


Håk*_*ist 8

从技术上讲,当然可以有通配符CAA记录(并且它确实“有效”)。

但是,在 DNS 中定义通配符的方式,这可能对您的用例实际上没有用,因为通配符仅适用于不存在的分支中的名称。

大概您至少有所有这些名称的地址记录 ( A/ AAAA),您要为其获取证书,并且通过将这些地址记录放置到位,通配符不再适用于那里。所以通配符几乎肯定是你想做的事情的禁忌。

我认为您想要做的是CAA为所有这些名称添加记录,或者在上面的级别上采用不那么严格的策略(即,在您的示例中为 comodo +letsencrypt)并利用CAA规范中的内置策略继承.