# TLSA 记录生成器：为邮件服务器配置 DANE

> 根据证书生成 DANE TLSA 记录：选择 usage、selector、matching（默认 3 1 1），得到 _25._tcp.mail.example.com 记录。

Source: https://ssl.sh/zh/tools/tlsa-generator/
Last updated: 2026-11-10

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

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 <哈希>`。

示例：

```text
_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 检查](https://ssl.sh/zh/tools/starttls-checker/)测试邮件服务器的 TLS，用[私钥匹配工具](https://ssl.sh/zh/tools/key-matcher/)核对公钥。


## FAQ

**浏览器会校验 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 记录不会被使用。
