Defaults.Exposed › 设置 › CAA
如何在 Cloudflare 上设置 CAA 记录
在 Cloudflare 中添加 CAA 记录,控制哪些证书颁发机构可以为你的域名签发 SSL 证书。
这对你的业务意味着什么
CAA(Certification Authority Authorization,证书颁发机构授权)记录指定了哪些证书颁发机构(即签发浏览器地址栏挂锁背后 SSL/TLS 证书的公司)可以为你的域名签发证书。任何守规矩的机构都必须先检查这条记录,如果自己不在名单上,就必须拒绝签发请求。
说得直白一点:没有 CAA 记录,全球数百家证书颁发机构中的任何一家都可能被骗或因失误而向他人签发一张针对你域名的有效证书——攻击者可以借此惟妙惟肖地冒充你的网站。CAA 记录把这扇门关上,等于宣布:只有这几家机构,其他一概不行。 它免费,几分钟就能搞定。
先确认 Cloudflare 在为你解析 DNS
这只有在 Cloudflare 负责回应你域名的 DNS 时才有效。Cloudflare 是你的 DNS 托管方,只有当你域名的**域名服务器(nameservers)**指向控制台中显示的 Cloudflare 域名服务器时,它的 DNS 才会生效。在 Cloudflare 中打开你的域名,查看 Overview 页面以确认 Cloudflare 处于激活状态。如果你的域名服务器指向别处,请到真正负责你 DNS 的服务商那里添加 CAA 记录。
先弄清楚你的证书颁发机构
动手添加之前,先弄清楚是哪家机构在签发你的证书,否则你可能会把自己的服务商也挡在门外。常见取值:
letsencrypt.org— Let’s Encrypt(大多数免费及自动化证书使用)digicert.com— DigiCertsectigo.com— Sectigoglobalsign.com— GlobalSignpki.goog— Google Trust Servicesamazon.com— Amazon(AWS Certificate Manager)
关于 Cloudflare 的一点提醒:如果你使用 Cloudflare 自带的 SSL(即橙云代理模式),Cloudflare 会代你通过多家机构签发证书——所以请确保你添加的任何 CAA 记录仍然允许这些机构,或者干脆把 CAA 交给 Cloudflare 管理。如果不确定,可以问搭建你主机环境的人,或在浏览器里查看证书(点击挂锁,再查看证书的颁发者)。
Cloudflare 上的操作步骤
- 登录 Cloudflare,选择你的域名。
- 在左侧菜单中进入你的 DNS 设置(找 DNS / Records)。
- 点击 Add record。
- 将**类型(Type)**设为 CAA。
- 在 Name 字段中输入:
@@代表域名的根。Cloudflare 会自动为你补上域名,因此不要在后面填写你的域名。 - Cloudflare 把 CAA 字段做成了友好的菜单。按如下设置:
- Flags:
0 - Tag:选择 Only allow specific hostnames(这就是
issue标签) - CA domain name(值):
letsencrypt.org
- Flags:
- TTL 保持为 Auto。
- 点击 Save。
允许多家证书颁发机构
大多数域名随着时间会用到不止一家机构——比如现在用免费证书、以后用付费证书,或为另一项服务用另一家。要允许多家,请为每一家各添加一条独立的 CAA 记录。它们都使用相同的 @ 名称、0 标志位和 issue 标签,只有 CA 域名值不同:
- 一条记录的值为
letsencrypt.org - 一条记录的值为
digicert.com
这两条合起来表示:这两家机构都允许,其他都不行。 你不要把它们合并到一条记录里。
Cloudflare 上人们常踩的坑
- 最大的错误就是把自己的机构挡在门外。 如果你添加的 CAA 记录只列了
digicert.com,而你的证书其实是通过 Let’s Encrypt 续期的,那么下一次续期就会悄无声息地失败,几周后你的挂锁可能突然失效。保存前务必把你真正使用的每一家机构都列进去。 - 当心 Cloudflare 自带的 SSL。 如果你的流量经过 Cloudflare(橙云),Cloudflare 需要能够获取边缘证书。添加一条把 Cloudflare 所用机构排除在外的 CAA 记录会破坏这一点——拿不准时,请在你自己用的机构之外,连同 Let’s Encrypt 和 Google Trust Services(
pki.goog)一起允许,或干脆把 CAA 交给 Cloudflare 管理。 - 名称是
@,不是你的域名。 根用@;Cloudflare 会自行补上域名。 - 标签措辞有别。 Cloudflare 在菜单里把
issue标签标注为 Only allow specific hostnames。日常使用选它就对了。 - 标志位普通记录用
0。 另一个值128是严格模式——只在你有意为之时才用。 - 填裸域名,不要填网址。 值是
letsencrypt.org,绝不是https://letsencrypt.org,也不要带www.。 - CAA 记录不走代理。 CAA 是纯 DNS 记录——这里没有橙云/灰云开关需要操心。
- 给它一点时间。 DNS 变更生效需要几分钟到几个小时不等。已有证书照常工作;CAA 只在签发或续期新证书时才会被检查。
验证是否生效
保存并传播完成后,运行本站的免费检测。它会用通俗的语言告诉你 CAA 记录是否已就位、你允许了哪些机构。
完成了? 免费检查您的域名 以确认设置已生效——并查看您在全部 34 项检查中的完整评级。