首页/安全/加密与证书速查/通配符证书的匹配规则

通配符证书的匹配规则

通配符证书(*.example.com)只覆盖同一级子域:匹配 a.example.com 与 b.example.com,不匹配 example.com 本身,也不匹配 a.b.example.com;SAN 中可与普通域名混列。

加密与证书速查安全更新于 2026-10-13

通配符证书的匹配规则

通配符证书以 *.example.com 的形式覆盖同一级的所有子域:它匹配 www.example.com 与 api.example.com,但不匹配裸域 example.com,也不匹配 a.b.example.com 这类多级子域。一张证书覆盖大量子域在运维上很省事,代价是私钥泄露的影响面被放大到全部子域,因此私钥的保护等级与访问审计要求更高。

基本信息

覆盖范围仅单层标签:*.example.com 匹配 www.example.com
不覆盖裸域 example.com 与多级子域 a.b.example.com
申请要求部分 CA 对通配符要求 DNS 验证或更严格的核验
运维提示证书泄露影响全部子域,私钥保护与暴露面控制更关键
常见做法同一张证书的 SAN 中同时列入 DNS:example.com

匹配对照

证书名访问域名结果
*.example.comwww.example.com匹配
*.example.comexample.com不匹配,需在 SAN 中单独列出
*.example.coma.b.example.com不匹配,属于多级子域
*.example.comexample.com.cn不匹配,属于另一个域名

典型使用场景

  • 多子域统一对外:省掉逐张签发与续期的工作量
  • 环境隔离规划:为开发测试环境单独申请证书,不与生产共用
  • 排查域名不匹配:确认报错域名是裸域还是多级子域
  • 安全评审:检查通配符私钥的存放位置、分发范围与访问审计

查看 SAN 中的通配符

查看 SAN 中的通配符
# 查看证书绑定的全部名称,确认是否包含裸域
openssl x509 -in wildcard.crt -noout -ext subjectAltName
# 实测某个域名是否被当前证书覆盖
 echo | openssl s_client -connect example.com:443 -servername sub.example.com 2>/dev/null | openssl x509 -noout -subject -dates
把裸域也加入同一张证书的 SAN(DNS:example.com)是常见做法,否则访问根域名会报名称不匹配。
通配符与团队边界的关系:如果不同业务线各自管理子域,共用一张通配符证书意味着每个团队都能拿到覆盖其它子域的私钥材料,必要时按业务拆分成多张证书。
各客户端对通配符的宽松程度不同:多数实现只允许最左侧标签为通配符,形如 *.*.example.com 的多通配符通常直接被拒绝,规划时以最保守的客户端为准。

易错点

  • 以为 *.example.com 覆盖所有层级子域,实际多级子域不匹配
  • 多个环境共用一张通配符证书,任一环境泄露即全量风险
  • 忘记把裸域加入 SAN,访问根域名时报名称不匹配
  • 通配符私钥在多台机器上分散存放且无审计,泄露后无法定位来源
  • 使用多通配符形式申请,多数 CA 与客户端都不支持

数据来源与参考

  • RFC 6125(证书名称匹配)
  • RFC 5280(SAN)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌