术语表

通配符证书 (Wildcard 证书 / 泛域名证书)

最后核实

定义

通配符证书是名称以星号开头(如 *.example.com)、可匹配该域名下任意一级子域名的 TLS 证书。

通配符证书(国内也常叫泛域名证书)在 SAN 扩展里包含 *.example.com 这样的名称。星号只能占据最左边的一整级标签,并且只匹配一级:www.example.com、api.example.com 都能覆盖,但 example.com 本身和 a.b.example.com 都不行。所以申请时一般同时写上 *.example.com 和 example.com。

为什么重要

子域名多或者需要动态创建子域名(例如 SaaS 给每个客户分配一个子域名)时,一张通配符证书就能全部覆盖,不必反复申请。代价是同一个私钥往往要复制到所有服务器上,一台机器泄露,所有子域名都受影响。通过 Let's Encrypt 等 ACME CA 申请通配符证书时必须使用 DNS-01 验证,HTTP-01 无法证明你控制所有子域名。EV 证书则完全不允许包含通配符。

例子

用 acme.sh 配合阿里云 DNS API 申请:

export Ali_Key="<AccessKey ID>"
export Ali_Secret="<AccessKey Secret>"
acme.sh --issue --dns dns_ali -d example.com -d '*.example.com'

DNS 托管在 DNSPod 等其他服务商时,换成对应的 DNS API 插件即可,续期时会自动添加和删除 TXT 记录。

常见误区

  • *.example.com 也能用于 example.com。 不能,裸域名要单独写进证书。
  • 通配符能覆盖多级子域名。 *.example.com 不匹配 a.b.example.com,需要另申请 *.b.example.com。
  • 一张通配符证书一定更省事也更安全。 管理上省事,但私钥共享扩大了泄露影响面;按服务拆分证书或使用多域名证书可以缩小风险。

延伸阅读