# CAA 记录是什么？定义、例子与常见误区

> CAA 记录是一种 DNS 记录，用来声明哪些证书颁发机构可以为该域名签发证书，所有公共 CA 签发前都必须检查。

Source: https://ssl.sh/zh/glossary/caa/
Last updated: 2026-11-10

CAA 记录（Certification Authority Authorization，[RFC 8659](https://www.rfc-editor.org/rfc/rfc8659)）是一种 DNS 资源记录，列出允许为某个域名签发证书的 CA。issue 标签控制普通证书，issuewild 控制[通配符证书](https://ssl.sh/zh/glossary/wildcard-certificate/)，iodef 指定违规报告的联系方式。自 2017 年 9 月起，公开信任的 CA 必须检查 CAA：先查完整域名，查不到再逐级向上查父域名，直到找到 CAA 记录为止。

## 为什么重要
CAA 能降低你没在用的 CA 发生[错误签发](https://ssl.sh/zh/glossary/misissuance/)的风险，例如攻击者在别家 CA 骗过了域名验证。按 SC-067 投票（[MPIC](https://ssl.sh/zh/glossary/mpic/)），CA 必须从多个网络视角查询 CAA，DNS 欺骗更难得逞。RFC 8657 还增加了 accounturi 和 validationmethods 参数，在支持的 CA 上可以把签发限制到某个 ACME 账户或某种验证方式。阿里云云解析、DNSPod 等国内 DNS 服务都可以直接添加 CAA 记录。

## 例子
```text
example.com.  3600  IN  CAA  0 issue "letsencrypt.org"
example.com.  3600  IN  CAA  0 issuewild ";"
example.com.  3600  IN  CAA  0 iodef "mailto:security@example.com"
```

以上记录只允许 Let's Encrypt 签发普通证书，并禁止任何 CA 签发通配符证书。检查 CA 会看到什么：

```bash
dig example.com CAA +short
```

## 常见误区
- **浏览器会检查 CAA。** 只有 CA 在签发时检查，它对已签发的证书和 TLS 连接没有任何影响。
- **没有 CAA 记录就不能签发。** 恰恰相反，没有 CAA 记录意味着任何公共 CA 都可以签发。
- **CAA 里填云厂商的域名就行。** 在云平台购买的证书由背后的某家 CA 签发，CAA 要写那家 CA 公布的标识（例如 digicert.com、letsencrypt.org），否则续期会被拒绝。

## 相关术语

- [证书颁发机构](https://ssl.sh/zh/glossary/certificate-authority/): 证书颁发机构（CA）是负责审核申请者、签发数字证书，并把公钥与域名或身份绑定在一起的机构。
- [DCV](https://ssl.sh/zh/glossary/dcv/): DCV 即域名控制权验证，是 CA 在签发证书前确认申请者确实控制证书中每一个域名的检查。
- [MPIC](https://ssl.sh/zh/glossary/mpic/): MPIC 是要求 CA 从多个网络位置重复进行域名验证和 CAA 检查、只有足够多位置结果一致才签发证书的规则。
- [DNSSEC](https://ssl.sh/zh/glossary/dnssec/): DNSSEC 是一组 DNS 扩展，让解析器能沿着从根区开始的签名链，验证 DNS 应答确实来自权威方且未被篡改。
- [通配符证书](https://ssl.sh/zh/glossary/wildcard-certificate/): 通配符证书是名称以星号开头（如 *.example.com）、可匹配该域名下任意一级子域名的 TLS 证书。
- [ACME](https://ssl.sh/zh/glossary/acme/): ACME 是 IETF 标准协议（RFC 8555），让软件自动向 CA 证明域名控制权，并自动申请、续期和吊销证书。
- [错误签发](https://ssl.sh/zh/glossary/misissuance/): 错误签发是指 CA 违反 Baseline Requirements 或根证书计划政策签发证书，从验证缺陷到字段格式错误都算在内。
