# Ballot 187：所有 CA 必须检查 CAA 记录

> Ballot 187 要求所有公开受信任的 CA 从 2017-09-08 起在签发前检查 DNS CAA 记录，让域名所有者决定哪些 CA 可以签发。

Source: https://ssl.sh/zh/ballots/ballot-187/
Last updated: 2026-11-10

[CAA](https://ssl.sh/zh/glossary/caa/) 记录之所以有用，全靠 Ballot 187。从 2017-09-08 起，每家公开受信任的 CA 在签发证书前都必须查询域名的 CAA 记录，记录不授权就必须拒绝，所以域名所有者可以把签发权限限定在自己实际使用的 CA 上。

## 改了什么

Ballot 187 把 CAA 检查从可选改成了强制。CAA 早在 2013 年 1 月就由 RFC 6844 定义（现已被 RFC 8659 取代），但检查与否全凭 CA 自愿，这让它几乎没用：只有所有 CA 都遵守，记录才能起到保护作用。按投票的原话，目的是让 CA 在签发所有证书时（少数特殊情况除外）都强制检查 CAA，并在 CAA 记录不允许时阻止签发。CA 还必须在 CP/CPS 中写明自己的 CAA 政策和识别的域名。提案人是 Mozilla 的 Gervase Markham，DigiCert 和 Google 附议。

## 生效日期

投票于 2017-03-08 通过，参与投票的 CA 94% 赞成、浏览器 100% 赞成。CAA 检查从 2017-09-08 起强制执行。

## 影响谁

域名所有者多了一种免费手段，可以限定哪些 CA 能为自己签发证书。但发布了 CAA 就要及时维护：如果 CAA 记录里没有你当前使用的 CA，签发和续期都会失败。国内常见的情况是换了证书品牌（比如从某家付费 CA 换到 Let's Encrypt），却忘了改 DNSPod 或阿里云 DNS 里的 CAA 记录。

## 该怎么做

发布列出所用 CA 的 CAA 记录，例如 `example.com. CAA 0 issue "letsencrypt.org"`；用通配符证书的还要加 `issuewild`。可以用 [CAA 检查工具](https://ssl.sh/zh/tools/caa-checker/)核对，或用 [CAA 生成器](https://ssl.sh/zh/tools/caa-generator/)生成记录。[SC-098v2](https://ssl.sh/zh/ballots/sc-098/) 将从 2027 年起增加按账户和验证方法的限制。


| 字段 | 值 |
|---|---|
| 投票 | Ballot 187 |
| 状态 | 通过 |
| 通过 | 2017-03-08 |
| 生效 | 2017-09-08 |
| BR 版本 | 1.4.3 |
| 官方页面 | https://cabforum.org/2017/03/08/ballot-187-make-caa-checking-mandatory/ |
