通配符证书 (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。 - 一张通配符证书一定更省事也更安全。 管理上省事,但私钥共享扩大了泄露影响面;按服务拆分证书或使用多域名证书可以缩小风险。