什么是 DNS CAA 以及如何验证和实施?

利用 CAA DNS 记录授权 CA 颁发 TLS 证书。

什么是 DNS CAA?

CAA 是 DNS 记录类型之一,它指示 CA 是否应该颁发证书。 换句话说,您是在让全世界知道谁应该颁发您的域名 SSL/TLS 证书. CAA 实施在 2017 年底成为强制性实施,因此它相对较新,只有不到 5% 的热门网站实施了这一点。

让我们举个例子——techblik.com 拥有一个名为“gf.dev”的站点,该站点具有以下 CAA 记录。

gf.dev.			3586	IN	CAA	0 issue "digicert.com; cansignhttpexchanges=yes"
gf.dev.			3586	IN	CAA	0 issuewild "comodoca.com"
gf.dev.			3586	IN	CAA	0 issue "comodoca.com"
gf.dev.			3586	IN	CAA	0 issuewild "digicert.com; cansignhttpexchanges=yes"
gf.dev.			3586	IN	CAA	0 issuewild "letsencrypt.org"
gf.dev.			3586	IN	CAA	0 issue "letsencrypt.org"

通过查看以上结果,我可以得到仅由 DigiCert、Comodo 和 Let’s encrypt 颁发的证书。 如果我要求 Thawte 或其他 CA 为 gf.dev 颁发证书,那么他们将无法做到。 另外,如果你注意的话,你会注意到一些条目有问题,一些条目有问题。 让我们找出它们是什么。

  • issue – 指示 CA 仅为该域颁发证书。
  • issuewild – CA 可以颁发通配符证书,以便它可以在域或子域中使用。

CAA 记录还支持 iodef(事件对象描述交换格式),允许 CA 将违规报告发送到指定的电子邮件或联系方式。

  修复英特尔无线 AC 9560 不工作

找不到 CAA 记录时会发生什么?

如果域没有 CAA 记录,那么任何人都可以为该域生成 CSR 并获得由任何 CA 签名的证书。 这是一个安全风险。

现在清楚了吗?

我在上面使用了一些缩写。 让我们看看它们是什么。

  • DNS——域名系统
  • CA——证书颁发机构
  • CAA——认证机构授权
  • TLS——传输层安全
  • SSL – 安全套接字层

如何查看DNS CAA记录?

有多种方法可以验证 CAA 记录。 如果你不想离开你的终端,那么你可以使用 dig 命令进行检查。

dig caa $YOURWEBSITE.COM

techblik.com.com 示例

[email protected]:~# dig caa techblik.com.com

; <<>> DiG 9.11.3-1ubuntu1.8-Ubuntu <<>> caa techblik.com.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54430
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;techblik.com.com.			IN	CAA

;; ANSWER SECTION:
techblik.com.com.		3600	IN	CAA	0 issuewild "comodoca.com"
techblik.com.com.		3600	IN	CAA	0 issuewild "letsencrypt.org"
techblik.com.com.		3600	IN	CAA	0 issue "comodoca.com"
techblik.com.com.		3600	IN	CAA	0 issue "digicert.com; cansignhttpexchanges=yes"
techblik.com.com.		3600	IN	CAA	0 issue "letsencrypt.org"
techblik.com.com.		3600	IN	CAA	0 issuewild "digicert.com; cansignhttpexchanges=yes"

;; Query time: 7 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Tue Oct 08 07:12:21 UTC 2019
;; MSG SIZE  rcvd: 298

[email protected]:~#

如果你想远程测试这个,那么你可以使用 DNS CAA 测试仪 在线工具。

  如何删除我的 Philo 帐户

如何添加CAA记录?

从技术上讲,这与添加其他 DNS 记录(如 A、NS、CNAME 等)的方式相同。

如果您使用的是 Cloudflare,请转到 DNS 选项卡 >> 添加记录并选择 CAA 作为类型。

对于 GoDaddy,转到 DNS 管理并添加一条记录

如果您不确定如何添加,可以联系您的 DNS/托管服务提供商寻求帮助。

结论

如果还没有,您应该利用 CAA 记录来添加域安全层。 添加 CAA 记录不会花费您。

喜欢阅读这篇文章吗? 与世界分享怎么样?