AWS Builder Center: Learn, Build and Connect with builders in the AWS community
AWS Builder Center is the official home for builders on AWS. Share and read what others are working on, follow people who inspire you, explore training and workshops, and find tools to support what you're building.
如何解决 ACM 证书颁发或续订时的 CAA“失败”错误?
我通过 AWS Certificate Manager (ACM) 请求新证书或尝试续订证书,但域名状态为“失败”。即使证书请求失败,但验证状态仍为“成功”。
简短描述
证书颁发机构授权 (CAA) 记录是 DNS 记录,可用来控制能为域名颁发证书的证书颁发机构 (CA)。ACM 会检查 CAA 记录,以验证域名所有者是否允许 ACM 为域名颁发 SSL 证书。CAA 会检查以下情况:
- CAA 记录检查沿着 DNS 域名树向上移动。
- 如果没有 CAA 记录,则任何 CA 都可以颁发证书。
- CAA 记录检查遵循 CNAME 记录。
- “issue”标签可用于非通配符域名和通配符域名,而“issuewild”标签仅影响通配符域名。
解决方法
CAA 记录检查沿着 DNS 域名树向上移动
CAA 记录检查从所请求的域名开始,然后在 DNS 域名树中向上移动。如果请求的是 www.example.com 的证书,ACM 会首先检查三级域名 www.example.com 的 CAA 记录。然后,ACM 会检查二级域名 example.com。
找到 CAA 记录后,将停止 CAA 查询,找到的记录随即生效。以下示例显示了在为 www.example.com 请求证书时,哪条 CAA 记录会生效:
(Example 1 / www.example.com)Domain Record type Flags Tag Value www.example.com. CAA 0 issue "amazon.com" example.com. CAA 0 issue "SomeCA.com" (Result: CAA passed)
三级域名的记录生效,允许 ACM 颁发证书。未使用二级域名记录。
(Example 2 / www.example.com)Domain Record type Flags Tag Value www.example.com. CAA 0 issue "SomeCA.com" example.com. CAA 0 issue "amazon.com" (Result: CAA failed)
第一条记录生效,阻止 ACM 颁发证书。第二条记录遭到忽略。
(Example 3 / www.example.com)Domain Record type Flags Tag Value test.example.com. CAA 0 issue "SomeCA.com" example.com. CAA 0 issue "amazon.com" (Result: CAA passed)
第一条记录不影响 www.example.com 的 CAA 记录。第二条记录生效,允许 ACM 颁发证书。
以下示例显示了在为 example.com 请求证书时,哪条 CAA 记录会生效:
(Example 4 / example.com)Domain Record type Flags Tag Value www.example.com. CAA 0 issue "amazon.com" example.com. CAA 0 issue "SomeCA.com" (Result: CAA failed)
第一条记录没有生效,因为 www.example.com 是所请求域名的子域名,而且 CAA 记录检查不会沿着 DNS 树向下移动。第二条记录生效,阻止 ACM 颁发证书。
(Example 5 / example.com)Domain Record type Flags Tag Value www.example.com. CAA 0 issue "SomeCA.com" example.com. CAA 0 issue "amazon.com" (Result: CAA passed)
第一条记录遭到忽略,因为 www.example.com 是所请求域名的子域名,而且 CAA 记录检查不会沿着 DNS 域名树向下移动。第二条记录生效,允许 ACM 颁发证书。
如果没有 CAA 记录,则任何 CA 都可以颁发证书
如果没有为请求的域名配置 CAA 记录,则包括 ACM 在内的任何 CA 都可以为域名颁发证书。例如,在以下示例中,ACM 可以为 example.com 颁发证书:
(Example 6 / example.com)Domain Record type Flags Tag Value www.example.com. CAA 0 issue ";" (Result: CAA passed)
由于 CAA 检查不会沿着 DNS 树中向下移动,这条记录遭到忽略。
CAA 记录检查遵循 CNAME 记录
CAA 记录检查会继续处理指向不同域名的 CNAME 记录。在以下示例中,www.example.com 指向有 CAA 记录的 www.example.net:
(Example 7 / www.example.com)Domain Record type Flags Tag Value www.example.com. CNAME www.example.net www.example.net. CAA 0 issue ";" (Result: CAA failed)
第一条记录将 CAA 的检查重定向到 www.example.net。这条 CAA 记录阻止任何 CA 颁发证书,而且 ACM 无法为 www.example.com 颁发证书。
如果指向的域名 www.example.net 没有 CAA 记录,则 CAA 记录检查会向上移至基础域名 example.com。
(Example 8 / www.example.com)Domain Record type Flags Tag Value www.example.com. CNAME www.example.net example.com. CAA 0 issue "amazon.com" (Result: CAA passed)
在这种情况下,ACM 可以为 www.example.com 颁发证书,因为 www.example.net 没有配置任何 CAA 记录。请注意,CAA 记录检查不会向上移至 CNAME 记录的父级,也不会检查 example.net 的 CAA 记录。有关更多信息,请参阅 CA/CA/Browser Forum 网站上的附录 A。
“issue”标签可用于非通配符域名和通配符域名,而“issuewild”标签仅影响通配符域名
“issue”标签允许 CA 为非通配符域名 www.example.com 和通配符域名 *.example.com 颁发证书。可以使用“issueWild”标签来指示 CA 如何处理通配符域名。以下示例显示了在为 *.example.com 请求证书时,哪条 CAA 记录会生效:
(Example 9 / *.example.com)Domain Record type Flags Tag Value example.com. CAA 0 issue "amazon.com" (Result: CAA passed)
CAA 记录允许 ACM 颁发非通配符域名和通配符域名证书,因此 ACM 可以颁发证书。
(Example 10 / *.example.com)Domain Record type Flags Tag Value example.com. CAA 0 issue "amazon.com" example.com. CAA 0 issuewild ";" (Result: CAA failed)
标签字段“issuewild”取代了通配符域名请求的“issue”,因此 ACM 无法颁发证书。**注意:**必须为 example.com 设置 CAA 记录,才可允许 CA 为 *.example.com 颁发证书。
(Example 11 / *.example.com)Domain Record type Flags Tag Value *.example.com. CAA 0 issuewild "amazon.com" example.com. CAA 0 issuewild ";" (Result: CAA failed)
第一条 CAA 记录遭到忽略,第二条 CAA 记录阻止 CA 为 *.example.com 颁发证书。
以下示例显示了在为 *.test.example.com 请求证书时,哪条 CAA 记录会生效:
(Example 12 / *.test.example.com)Domain Record type Flags Tag Value test.example.com. CAA 0 issue "amazon.com" example.com. CAA 0 issuewild ";" (Result: CAA passed)
CAA 检查会找到第一条记录,终止沿着 DNS 域名树向上移动,并允许 ACM 颁发证书。
当请求非通配符域名时,将忽略“issuewild”标签。以下示例显示了在为 www.example.com 请求证书时,哪条 CAA 记录会生效:
(Example 13 / www.example.com)Domain Record type Flags Tag Value www.example.com. CAA 0 issuewild "amazon.com" example.com. CAA 0 issue ";" (Result: CAA failed)
这属于非通配符域名请求,因此第一条 CAA 记录遭到忽略。第二条 CAA 记录生效,不允许 CA 颁发证书。
有关配置 CAA 记录的更多信息,请参阅(可选)配置 CAA 记录。
相关信息
Datatracker 网站上的 DNS 证书颁发机构授权 (CAA) 资源记录
- 语言
- 中文 (简体)
