Defaults.Exposed › 设置 › CAA
如何在 AWS Route 53 上设置 CAA 记录
在 AWS Route 53 中添加 CAA 记录,控制哪些证书颁发机构可以为你的域名签发 SSL 证书。
这对你的业务意味着什么
CAA(Certification Authority Authorization,证书颁发机构授权)记录指定了哪些证书颁发机构(即签发浏览器地址栏挂锁背后 SSL/TLS 证书的公司)可以为你的域名签发证书。任何守规矩的机构都必须先检查这条记录,如果自己不在名单上,就必须拒绝签发请求。
说得直白一点:没有 CAA 记录,全球数百家证书颁发机构中的任何一家都可能被骗或因失误而向他人签发一张针对你域名的有效证书——攻击者可以借此惟妙惟肖地冒充你的网站。CAA 记录把这扇门关上,等于宣布:只有这几家机构,其他一概不行。 它免费,几分钟就能搞定。
先确认 Route 53 在为你解析 DNS
这只有在 Route 53 负责回应你域名的 DNS 时才有效。在 Route 53 中,你的记录存放在该域名的**托管区域(hosted zone)里,而该区域只有在你域名的域名服务器(nameservers)**指向区域中列出的四个 Route 53 域名服务器时才会生效。打开托管区域,查看它的 NS 记录,确认这些域名服务器已在你的注册商处设置好。如果你的域名服务器指向别处,请到真正负责你 DNS 的服务商那里添加 CAA 记录。
先弄清楚你的证书颁发机构
动手添加之前,先弄清楚是哪家机构在签发你的证书,否则你可能会把自己的服务商也挡在门外。常见取值:
amazon.com— Amazon(AWS Certificate Manager,ACM)letsencrypt.org— Let’s Encrypt(大多数免费及自动化证书使用)digicert.com— DigiCertsectigo.com— Sectigoglobalsign.com— GlobalSignpki.goog— Google Trust Services
如果你使用 AWS Certificate Manager 来配置证书,就必须允许 amazon.com,否则 ACM 将无法签发。如果不确定,可以问搭建你主机环境的人,或在浏览器里查看证书(点击挂锁,再查看证书的颁发者)。
Route 53 上的操作步骤
- 登录 AWS 管理控制台,打开 Route 53。
- 在左侧菜单中选择 Hosted zones,再选择你的域名。
- 点击 Create record。
- 将 Record name 字段留空,使记录应用于域名的根(即顶点 apex)。不要在这里填写你的域名。
- 将 Record type 设为 CAA。
- 在 Value 框中,按 Route 53 的三段式格式在一行内输入:
0 issue "letsencrypt.org"即标志位(0)、标签(issue),再加上用双引号括起来的证书颁发机构。 - TTL 保持默认(300 秒即可)。
- 如有提示选择 Simple routing,然后点击 Create records。
允许多家证书颁发机构
大多数域名随着时间会用到不止一家机构——比如一项服务用 AWS Certificate Manager、另一项用 Let’s Encrypt。在 Route 53 中,你把额外的机构作为同一条 CAA 记录 Value 框里的更多行添加,每行一条:
0 issue "amazon.com"
0 issue "letsencrypt.org"
这两行合起来表示:这两家机构都允许,其他都不行。 每一行都是一条独立的 issue 条目;你不要把两家机构放在同一行。
Route 53 上人们常踩的坑
- 最大的错误就是把自己的机构挡在门外。 如果你添加的 CAA 记录只列了
digicert.com,而你的证书其实是通过 Let’s Encrypt 或 ACM 续期的,那么下一次续期就会悄无声息地失败,几周后你的挂锁可能突然失效。保存前务必把你真正使用的每一家机构都列进去。 - 为 ACM 允许
amazon.com。 如果你的证书来自 AWS Certificate Manager,而你的 CAA 记录没有包含amazon.com,那么 ACM 的验证和续期都会失败。这是 Route 53 特有的最常见绊脚石。 - CA 周围的引号是必需的。 Route 53 要求格式为
0 issue "letsencrypt.org",机构要用双引号括起来。漏掉引号会使记录无效。 - 根记录把记录名称留空。 名称为空时记录应用于顶点;在那里填写域名会把记录建到错误的位置。
- 标志位普通记录用
0。 另一个值128是严格模式——只在你有意为之时才用。 - 填裸域名,不要填网址。 值是
letsencrypt.org,绝不是https://letsencrypt.org,也不要带www.。 - 给它一点时间。 DNS 变更生效需要几分钟到几个小时不等。已有证书照常工作;CAA 只在签发或续期新证书时才会被检查。
验证是否生效
保存并传播完成后,运行本站的免费检测。它会用通俗的语言告诉你 CAA 记录是否已就位、你允许了哪些机构。
完成了? 免费检查您的域名 以确认设置已生效——并查看您在全部 34 项检查中的完整评级。