← RFC Reference

RFC 7817:电子邮件的更新型TLS服务器身份检查

Current Standard Transport Security Published March 2026
ELI5: 当您通过HTTPS连接到网站时,您的浏览器会检查证书是否与域名匹配。电子邮件服务器在通过TLS相互连接时需要做同样的事情——但通过MX记录的电子邮件路由使其更加复杂。此RFC准确定义了发送服务器应该检查证书的名称。

为什么这个存在

当SMTP客户端通过STARTTLS(根据RFC 3207)或隐式TLS(根据RFC 8314)启动到远程邮件服务器的TLS连接时,它会收到一份证书。但该证书中应该出现哪个主机名?

在电子邮件中,您不会直接连接到收件人的域。您查找example.com的MX记录,它可能指向mail.hosting-provider.net。证书应该说example.com还是mail.hosting-provider.net?答案很重要,因为:

工作原理

RFC 7817定义了一个清晰的层级结构,说明客户端应根据服务器的发现方式对照服务器证书检查哪些参考标识符:

身份验证检查顺序

  1. MX主机名 — 如果通过MX查询发现服务器,请对照MX主机名(例如mail.hosting-provider.net)而不是收件人域检查证书。
  2. 收件人域 — 如果没有MX记录,客户端回退到域本身的A/AAAA记录,请对照收件人域检查。
  3. 显式配置 — 如果服务器是手动配置的(例如提交服务器),请对照配置的主机名检查。

TLS连接流程

; 第1步:解析收件人域的MX
dig example.com MX
example.com.  IN  MX  10 mail.provider.net.

; 第2步:连接到MX主机,启动SMTP
220 mail.provider.net ESMTP ready
EHLO sender.example.org
250-mail.provider.net
250-STARTTLS
STARTTLS
220 Go ahead

; 第3步:TLS握手 — 对照"mail.provider.net"检查证书
; 证书SAN:DNS:mail.provider.net, DNS:*.provider.net
; 找到匹配 → 身份已验证

关键技术细节

证书匹配规则

字段 检查 说明
主体备用名称(SAN) 首选 首先检查SAN扩展中的DNS-ID条目
通用名称(CN) 备用 仅当不存在SAN DNS-ID条目时(已弃用的做法)
通配符 仅限最左边标签 *.provider.net匹配mail.provider.net但不匹配a.b.provider.net

按发现方法的参考标识符

发现方法 对照以下内容检查证书 示例
MX查询 MX主机名 证书必须匹配mail.provider.net
A/AAAA回退(无MX) 收件人域 证书必须匹配example.com
SRV记录(RFC 6186) SRV目标主机名 证书必须匹配SRV目标
手动配置 配置的主机名 证书必须匹配管理员设置的内容
MTA-STS策略(RFC 8461) 策略中的MX主机名 策略限制哪些MX名称可接受

与DANE的交互

部署DANE时(RFC 7672),DNS中MX主机名的TLSA记录会固定证书或公钥。DANE提供比传统的基于CA的验证更强的身份保证,因为它不依赖于信任证书颁发机构 — 域所有者直接在DNSSEC签名的DNS中发布预期的证书数据。

常见错误

可投递性影响

Related RFCs