通配符证书(Wildcard SSL证书)在单层通配符(如 *.example.com)下,**技术上不限制子域名数量**,但仅覆盖一级子域名(如 www.example.com、api.example.com),不包含二级及以上(如 dev.api.example.com)或根域名(example.com)。
这是由 RFC 6125 和 CA/Browser Forum Baseline Requirements 明确规定的语义限制,而非服务器或CA的性能瓶颈。
通配符 * 仅代表单个标签(label),即 DNS 名称中一个点分隔的部分。因此 *.example.com 只能匹配 a.example.com 或 z99.example.com,但无法匹配 example.com(缺少子域)或 a.b.example.com(含两个子域标签)。Chrome、Safari 和 Firefox 均严格遵循该规则,任何越界匹配将触发“NET::ERR_CERT_COMMON_NAME_INVALID”错误。
部分老旧负载均衡器(如 Nginx 1.10 以下未配置 `ssl_certificate_by_lua*`)甚至会因 SNI 域名解析异常导致通配符握手失败,需验证实际 TLS 握手日志。
通配符证书本身不改变证书链结构,仍需完整部署中间 CA 证书,否则 iOS 17+ 和 Chrome 119+ 会出现“此连接并非完全安全”提示。尤其当使用 Let’s Encrypt 的 R3 中间证书时,若未随通配符证书一同下发,iOS 设备常因 OCSP Stapling 缺失而回退至在线 OCSP 查询,造成首屏 HTTPS 延迟升高。
浏览器信任依赖于根证书预置列表——通配符证书必须由受信 CA(如 DigiCert、Sectigo 或 Let’s Encrypt)签发,且其签发策略符合 CA/B Forum BR 要求,否则即使语法合法,也会被标记为不受信。
生产环境中,通配符证书的实际子域承载能力受限于 CDN 或 WAF 配置。Cloudflare 免费版仅允许绑定 50 个子域名到同一通配符证书;阿里云 SLB 则要求每个监听规则单独绑定证书,无法复用单张通配符证书管理数百子域。更关键的是,Let’s Encrypt 对同一域名的通配符证书签发频率设为每周 5 次,超限将触发 rate limit,影响灰度发布场景下的动态子域(如 pr-123.test.example.com)自动化申请。
我们曾遇到某 SaaS 平台因误用 *.example.com 覆盖 example.com 导致登录页 HTTPS 失败——正确做法是同时部署一张单独的域名证书用于根域,或选用多域名通配符(如 example.com + *.example.com)组合证书。
Q:通配符证书可以保护 example.com 和 *.example.com 吗?
A:不可以。标准通配符证书仅覆盖一级子域名。需选择多域名(SAN)证书,显式添加 example.com 和 *.example.com 两个条目。
Q:能用 **.example.com 匹配无限层级子域吗?
A:不能。双星号不符合 DNS 名称语法和 X.509 标准,所有主流 CA 拒绝签发,浏览器直接拒绝建立 HTTPS 连接。
Q:通配符证书是否支持泛解析 DNS(wildcard DNS record)?
A:支持,但二者无耦合关系。DNS 泛解析控制域名解析,SSL 通配符控制证书验证——即便 DNS 返回了 xxx.yyy.example.com 的 IP,证书仍因不匹配而触发浏览器警告。
Q:申请免费SSL证书时,Let’s Encrypt 支持通配符吗?
A:支持,但必须通过 DNS-01 方式验证所有权,无法使用 HTTP-01;且需 ACME v2 协议客户端(如 Certbot 0.22+)。
加密您的网站,赢得客户信任!