**结论:通配符 SSL 证书只覆盖一级子域名。*.example.com 能覆盖 a.example.com、b.example.com,但覆盖不了 a.b.example.com,也不包含 example.com 本身。** 想要更深的层级或根域名,唯一的办法是把它们作为 SAN(Subject Alternative Name,证书的备用域名列表)加进同一张证书一起签发。
通配符 SSL 证书能覆盖几级子域名?
结论:只能覆盖一级,且通配符必须是完整的最左侧标签。*.example.com 匹配任意一个标签,a.example.com ✅、b.example.com ✅、a.b.example.com ❌、example.com ❌。CA/B Forum 基线要求和 RFC 6125 都规定:* 不能与其他字符混用,也不能出现在非最左位置。所以 w*.example.com、*.*.example.com、api.*.example.com 这类写法,公网信任的 CA 一律不会签发。极少数内部自签或旧版客户端可能放行,但不能用于生产环境。
*.example.com 为什么不含 example.com?
结论:通配符要求至少替换掉一个标签,根域名没有标签可替换。这是很多站长购买通配符证书后访问主站报错的直接原因。正确做法是签发时把根域名一并写进去。以 Let's Encrypt 的 acme.sh 为例:
acme.sh --issue -d example.com -d '*.example.com' --dns dns_ali
注意 *.example.com 必须加单引号,否则 shell 会把它当成当前目录下的文件名展开,导致签发失败。签发后用 openssl x509 -in cert.pem -noout -ext subjectAltName 确认输出里同时有 DNS:example.com, DNS:*.example.com。
多级子域名场景怎么配?
结论:固定域名少于 5 个时,用多域名证书(SAN 证书)更划算;子域名数量多、动态增加时,才用通配符加多通配符组合。
具体分三种情况:
- 只有一级子域名:一张
*.example.com + example.com 就够。
- 有固定二级子域名(如
a.b.example.com):把 *.b.example.com 加进同一张证书的 SAN,做成“多通配符证书”,一张证书同时管理 *.example.com 和 *.b.example.com。
- 业务线隔离:不同业务用不同通配符,如
*.api.example.com、*.cdn.example.com,避免一张证书私钥泄露导致所有子域名都无法安全使用。
通配符证书选 DV 还是 OV?
结论:纯技术站点选 DV 通配符即可,对外展示企业资质的站点选 OV 通配符;EV 通配符基本不用考虑。
- DV 通配符:只验证域名控制权,自动化签发通常 10 分钟内完成,浏览器显示锁标。商业 CA 价格一般在每年 300~800 元区间;Let's Encrypt 免费,但有效期 90 天,必须自动化续期。
- OV 通配符:需要提交营业执照做组织核验,签发周期 1~3 个工作日,价格通常在每年 1500~3000 元。证书详情里会显示公司名称。
- EV 通配符:主流 CA 不签发 EV 通配符,也不要相信能签出来的报价。
证书有效期需要特别注意:公开信任证书单张最长 398 天,从 2026 年 3 月 15 日起缩短到 200 天,2027 年 3 月 15 日起 100 天,2029 年 3 月 15 日起 47 天。结论:通配符证书必须配置自动续期,手动续期迟早会漏。
通配符证书为什么只能用 DNS 验证?
结论:HTTP 文件验证无法证明你对该域名下所有子域名的控制权,所以通配符强制走 DNS-01 验证。做法是在 DNS 服务商添加 _acme-challenge.example.com 的 TXT 记录,CA 校验通过后签发。用 acme.sh 配合 DNS API 可以全自动完成并配置定时续期:
acme.sh --issue -d example.com -d '*.example.com' --dns dns_dp
acme.sh --install-cert -d example.com --key-file /etc/nginx/ssl/example.key \
--fullchain-file /etc/nginx/ssl/example.pem \
--reloadcmd "nginx -s reload"
dns_dp 对应 DNSPod,其他服务商换成 dns_ali、dns_cf 等即可。
怎么快速验证证书真实覆盖范围?
结论:不要只看商家宣传,直接用客户端命令探测实际下发的证书。执行:
openssl s_client -connect a.example.com:443 -servername a.example.com </dev/null 2>/dev/null \
| openssl x509 -noout -ext subjectAltName
输出里的 DNS: 列表就是实际覆盖范围,逐条核对目标域名是否在其中。
通配符证书的最大风险是什么?
结论:私钥泄露的波及范围是整级子域名,不是单个站点。因此至少要保证三点:私钥文件权限设为 600 且不放在 Web 目录;测试环境和生产环境不用同一张通配符;开启 CT 日志(Certificate Transparency,证书透明度日志,公开记录所有签发的证书)监控,一旦有人给你的域名签了未知证书能第一时间收到告警。
回到最初的问题:选型先数子域名层级和数量,一级多个就上通配符并把根域名加进 SAN,有二级固定域名就做多通配符或 SAN 证书;验证方式只能选 DNS,续期必须自动化。这几条做到位,通配符证书才真正省心。