教你如何给域名添加CAA记录解析增强SSL安全性防止域名劫持

CAA,全称Certificate Authority Authorization,即证书颁发机构授权。它为了改善PKI(Public Key Infrastructure:公钥基础设施)生态系统强度、减少证书意外错误发布的风险,通过DNS机制创建CAA资源记录,从而限定了特定域名颁发的证书和CA(证书颁发机构)之间的联系。从此,再也不能是任意CA都可以为任意域名颁发证书了。

引言

CAA,全称Certificate Authority Authorization,即证书颁发机构授权。它为了改善PKI(Public Key Infrastructure:公钥基础设施)生态系统强度、减少证书意外错误发布的风险,通过DNS机制创建CAA资源记录,从而限定了特定域名颁发的证书和CA(证书颁发机构)之间的联系。从此,再也不能是任意CA都可以为任意域名颁发证书了。

简单来说,当你的域名增加了CAA记录以后,这个域名就只能通过你CAA记录中指定的域名颁发机构颁发SSL证书。这样可以从一定程度上降低别人伪造你域名SSL证书的可能性。

方法

「Domain name」 中输入你的域名后点击 「Auto-Generate Policy」自动生成CAA值
  • 然后下拉网页输入你的邮箱地址,作用是当有人使用伪造的域名证书访问你的网站时,会自动发邮件通知你。
「Email address or URL」中输入你的电子邮箱
  • 继续看网页下面生成的 CAA 记录值,复制粘贴下图中红色方框里的内容添加你的域名 CAA 记录解析。
图中红色方框中的内容为 CAA 记录值
  • 下面给出华为云DNS解析的配置截图,不同的DNS 解析商后台操作界面也是不同的,但是大致结构类似。
华为云 DNS 解析 CAA 记录设置截图演示
主要看「DNS CAA」这一项

后记

切记不要无脑复制我用的 CAA 记录值,因为你的 SSL 颁发机构很可能跟我的不同!

通常在根域名添加 CAA 记录就可以,下面的子域名不用单独添加 CAA 记录。如果根域名以及子域名的 SSL 证书是通过多个机构颁发的,那么只要在根域名添加其他的证书颁发机构对应的 CAA 值即可。

例如你的根域名 CAA 值是 "digicert.com" ,你的 www 子域名 CAA 值是 "letsencrypt.org",你的其他子域名 CAA 值是 "abc.com",那么你可以根据下面的例子来添加。

0 issue "digicert.com"
0 issue "letsencrypt.org"
0 issue "abc.com"
0 iodef "mailto:admin@mail.otakusay.com"

师傅领进门修行靠个人,我只是教给你方法,至于后面怎么发挥还要靠你自己。网络安全没有绝对的安全,但是我们可以最大限度的增加安全系数!

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧