首页/网络/抓包与流量分析速查/证书域名匹配判读
应用层报文判读71 条

证书域名匹配判读

校验以 SAN 列表为准(CN 已弱化):请求域名不在 SAN 内即触发告警;SNI、Host、证书记录三者不一致时按顺序核对。

域名不匹配是怎么回事

域名不匹配指客户端请求的域名不在服务端证书声明的适用范围里,校验收不到对应条目就判定失败并中断连接。当代客户端以证书里的域名列表为准,较早的通用名称字段已经弱化。排查时按固定顺序核对三项:握手阶段客户端指定的域名、证书声明覆盖的域名范围、应用层声明的目标域名,任何一项对不上都可能被严格客户端拒绝。通配符只覆盖一级子域,这是最常见的踩坑点。

基本信息

适用平台Wireshark / tshark,握手明文中的域名与证书字段
相关字段握手中的目标域名、证书的域名列表
通配符规则只匹配一级子域,多层子域不在覆盖范围内
地址直连需要证书中包含地址类型的条目,普通域名条目不适用

典型使用场景

  • 部分客户端报证书告警而部分正常,确认域名字段的差异
  • 新域名上线后未更新证书,快速定位覆盖范围问题
  • 地址直连测试失败,确认证书是否包含地址类型条目
  • 排查通配符证书对多级子域的覆盖是否符合预期
  • 为网关与源站证书配置不一致提供报文级证据
  • 上线前对多域名做统一核查,避免逐个踩坑

核对顺序

核对顺序
1) 握手中客户端指定的域名 = 实际请求域名?
2) 证书域名列表是否覆盖该域名(含通配符覆盖范围)?
3) 应用层声明的目标域名与握手域名是否一致?
# 任一不符都可能被严格客户端拒绝
tls.handshake.certificate                # 查看证书声明的域名范围

观察项逐项读法

观察项含义异常表现
握手目标域名客户端要访问的站点与实际域名不符会导致命中错误站点
证书域名列表证书覆盖范围不含请求域名即校验失败
通配符覆盖以星号代替的一级名称多级子域不在覆盖范围内
地址类型条目针对地址直连的声明缺失时地址直连校验必然失败
通配符只覆盖一级子域,写成单星号加主域名时,再多一层子域就不会被覆盖,这是证书申请和排查时最容易出错的地方。
部分客户端仍会回退校验通用名称字段,遇到不一致案例时按客户端类型分别核对,避免用单一经验覆盖全部情况。

易错点

  • 以为通配符覆盖所有子域:它只匹配一级,多层子域需要单独申请条目
  • 用地址直连测试域名配置:地址直连需要地址类型的条目,两者结论不能互推
  • 只看证书不看待访问域名:三者不一致才是问题所在,只核对一项会漏判
  • 忽略不同客户端的校验差异:宽松实现可能放过不匹配,导致问题只在部分用户侧暴露

数据来源与参考

  • RFC 6125(标识校验)
  • RFC 9525
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌