配置

TLSA 记录生成器

从证书(粘贴或从服务器获取)生成 DANE TLSA 记录,默认的 3 1 1 绑定公钥。

浏览器本地运行 你输入的内容只在本地用 JavaScript 处理,不会上传到 ssl.sh。

模式

最后核实

TLSA 记录生成器用来生成把 TLS 服务和它的证书或公钥绑定在一起的 DANE 记录。粘贴证书(或从服务器获取),保持推荐的 3 1 1,填好服务的主机名和端口,点 生成,就能得到完整记录和可以直接填进 DNS 控制台的记录值。

怎么用

  1. 粘贴服务器证书(PEM),或选择 从服务器获取(适用于 465、993 这类直接 TLS 端口)。
  2. 没有特殊需要,保持默认的 3 1 1(usage 3、selector 1、matching 1)。
  3. 填服务的主机名和端口,比如 mail.example.com 和 25。
  4. 把记录添加到已开启 DNSSEC 的域名里。在 DNS 控制台里,主机记录填 _25._tcp.mail(按控制台要求去掉主域名部分),类型选 TLSA,记录值填 3 1 1 <哈希>。

示例:

_25._tcp.mail.example.com. IN TLSA 3 1 1 0c72ac70b745ac19998811b131d662c9ac69dbdbe7cb23e5b514b56664c5d3d6

三个数字的含义

  • usage:0 PKIX-TA(CA,同时做常规校验),1 PKIX-EE(服务器证书,同时做常规校验),2 DANE-TA(你指定的信任锚),3 DANE-EE(服务器证书本身)。
  • selector:0 整张证书,1 只取公钥(SubjectPublicKeyInfo)。
  • matching:0 原文,1 SHA-256,2 SHA-512。

安全地轮换

  1. 换私钥之前,先生成新私钥对应的记录,与旧记录同时发布。
  2. 至少等两个 TTL,让解析器都看到新旧两条。
  3. 部署新证书,再删除旧记录。

DANE 只有在域名签了 DNSSEC、解析器做了校验时才生效。用 STARTTLS 检查测试邮件服务器的 TLS,用私钥匹配工具核对公钥。

常见问题

浏览器会校验 TLSA 吗?

不会,主流浏览器不做 DANE 校验。TLSA 主要用在邮件服务器之间:收件域名开启 DNSSEC 时,Postfix、Exim 和一些大型邮件服务商会检查 SMTP 的 TLSA 记录。

续期证书后记录要改吗?

用 3 1 1 时,只要新证书用同一个私钥就不用改(certbot 加 --reuse-key,其他 ACME 客户端有类似选项)。私钥变了,就先发布新的 TLSA 记录,等旧记录的 TTL 过去再换证书。

国内的 DNS 服务商支持 TLSA 和 DNSSEC 吗?

取决于服务商和套餐,先在控制台确认能添加 TLSA 类型的记录、能开启 DNSSEC,并在域名注册商处提交 DS 记录。没有 DNSSEC,TLSA 记录不会被使用。

资料来源

  1. RFC 6698: DANE TLSA
  2. RFC 7671: DANE 运维指南
  3. RFC 7672: SMTP DANE