首页 » 技术文章 » 浏览内容

正确设置DNS CAA记录给你提升HTTPS站点安全

578 2 发表评论

什么是 DNS CAA

譬如说,你的站点已经启用了 HSTS,甚至已经被固化到了浏览器内部。但是一个中间人仍然劫持了你的连接。你走了 HTTPS 协议?没问题,我也搞到了一个你所访问域名的 SSL 证书。要知道 SSL 连接使用的证书是服务端决定的,但是这个证书未必就是真正的域名所有人申请的。虽然普通人未必能搞到不属于你的域名的证书,但是证书颁发机构就不一样——虽然基于信誉的原因他们不太可能会这样做,但是没有任何外在的保护防止他们颁发并非由域名所有人申请的证书。

简而言之,一个有效的证书未必就是域名所有人申请的证书。就好比普通人造不出能过验钞机的假钞,但是再强大的验钞机也不能阻止造币厂监守自盗。这时就需要一个更上层的服务去验证这个“有效的证书”的合法性,这就是 DNS CAA 的作用。

DNS Certification Authority Authorization(DNS证书颁发机构授权,简称 CAA)是一项借助互联网的域名系统(DNS),使域持有人可以指定允许为其域签发证书的数字证书认证机构(CA)的技术。它会在 DNS 下发 IP 的同时,同时下发一条资源记录,标记该域名下使用的证书必须由某证书颁发机构颁发。比如我大 EOI 的官网使用了 Let’s Encrypt 颁发的免费证书,我可以同时使用 CAA 技术标记 EOI 官网域名 www.eoitek.com 使用的 SSL 证书由 Let’s Encrypt 颁发,这样就可以(在一定程度上)解决上面所述的问题。

启用 DNS CAA
CAA 是 DNS 服务器下发的记录,所以首先要 DNS 服务器支持才行。EOI官网域名购买自阿里云旗下的万网,然而万网自带的 DNS 服务并不支持 CAA 资源记录。如果想体验 CAA,可以使用CloudXNS。另外支持 CAA 记录的国外 DNS 服务这里有比较详细的记录:https://sslmate.com/caa/support

小残使用的是 CloudXNS这款号称永久免费的 DNS 服务。

注意:

  1. CAA:证书颁发机构授权 格式flag tag value
  2. CAA:格式为“flag tag value” 其中flag目前取值为0、128;tag取值为issue、issuewild、iodef;value为不包含|、””、\、<>、中文字符的字符串。

主机记录:可以直接填写顶级域名,可以使用@。
记录值:填写 0 issue “证书颁发机构域名”。
如果如果你用 Let’s Encrypt 颁发的免费证书,记录值 部分直接填写 0 issue “letsencrypt.org” 即可。
你还可以添加一条为 0 iodef “mailto:你的邮箱” 的 CAA 记录,表示如果发现违背 CAA 记录的情况给这个邮箱发邮件通知。

如果你仍然不太清楚如何填写 CAA 记录,可以用工具直接生成:https://sslmate.com/caa/
填写域名后点 Auto-Generate Policy,这个工具会自动查询你的网站使用了什么证书,从而生成对应的 CAA 记录数据。

检验 DNS CAA 是否生效

使用 SSL Server Test 可以很方便的检验你的域名是否启用了 DNS CAA

下面还有对应证书是否匹配当前 DNS CAA 记录的提示

标签:

评论 共 2 条 (RSS 2.0) 发表 评论

  1. 会员头像 freeppt7.com说道:

    学习!谢谢分享!

发表评论

  •   没有头像?

关注我们,实时联系

通知公告">更多...

♥如果喜欢本站可以直接点击订阅博客
♥点击此加入晓残博客会员群加入扣群
♥本站免费提供加密解密服务点击解密
♥如果你有意向广告合作点击广

站长微信

订阅博客

站内广告

博客统计

  • 日志总数:545 篇
  • 评论数目:2168 条
  • 标签总数:43 个
  • 页面总数:8 个
  • 分类总数:17 个
  • 友链总数:24 个
  • 建站日期:2011-02-13
  • 运行天数:2715 天
  • 最后更新:2018-6-28