所有 SSL 文章 SSL 与证书

通配符 SSL 证书详解

通配符 SSL 证书用一张证书保护一个域名及其所有子域名。无需为 www.example.comblog.example.comapi.example.com 分别获取证书,一张 *.example.com 通配符即可全部覆盖。

通配符如何工作

通配符字符 * 匹配任何单级子域名:

证书覆盖不覆盖
*.example.comwww.example.comblog.example.comapi.example.comanything.example.comexample.com(裸域名)、sub.blog.example.com(嵌套)
*.example.com + example.com所有子域名 + 裸域名嵌套子域名
*.sub.example.coma.sub.example.comb.sub.example.comsub.example.comexample.com

关键限制: 通配符只匹配一级。*.example.com 不覆盖 a.b.example.com

通配符 vs 多域名(SAN)

通配符多域名(SAN)
覆盖一级的所有子域名特定列出的域名
灵活性任何子域名自动生效必须明确列出每个域名
新子域名即时覆盖需要新证书
跨域否(一个基础域名)是(example.com + other.com
需要 DNS-01✅ 是否(HTTP-01 或 DNS-01)

使用通配符当: 你有多个子域名或经常添加新的。 使用 SAN 当: 你有少量固定的特定域名/子域名。

何时使用通配符证书

适合的场景:

  • 你有多个子域名(app.api.docs.blog.staging. 等)且不想为每个管理单独的证书
  • 你经常添加新子域名——它们无需重新签发即可自动覆盖
  • 开发/测试环境中子域名名称经常变化

通配符不适合的场景:

  • 你需要覆盖不同的基础域名(example.com + example.org)—— 使用 SAN 证书
  • 你需要子域名级别的隔离——如果一个子域名的密钥泄露,通配符证书覆盖所有子域名
  • 你不能修改 DNS 记录——通配符签发需要 DNS-01,这需要 DNS 访问权限

安全考虑

通配符证书意味着一个私钥保护所有子域名。如果密钥泄露,攻击者可以冒充任何子域名——不仅仅是一个。

缓解措施:

  • 限制私钥访问 —— 只有需要它的服务器应该有密钥文件
  • 使用短期证书 —— Let’s Encrypt 90 天有效期限制暴露窗口
  • 考虑为高安全子域名使用独立证书(如 admin.example.com 可能需要自己的证书)

获取免费通配符证书

Let’s Encrypt 通过 DNS-01 验证免费支持通配符证书。大多数竞争对手(ZeroSSL、SSL For Free)将通配符限制为付费套餐。

使用 GetHTTPS

  1. 输入 *.example.com(如果要裸域名则加上 example.com
  2. 添加 GetHTTPS 提供的 DNS TXT 记录
  3. 等待 DNS 传播(GetHTTPS 会为你预检)
  4. 验证并下载证书文件

完整通配符分步指南 →

安装通配符证书

与任何证书相同——服务器不知道这是通配符:

Nginx:

server {
    listen 443 ssl http2;
    server_name *.example.com example.com;

    ssl_certificate     /etc/ssl/fullchain.pem;
    ssl_certificate_key /etc/ssl/privkey.pem;
}

Apache:

<VirtualHost *:443>
    ServerName example.com
    ServerAlias *.example.com

    SSLEngine on
    SSLCertificateFile /etc/ssl/cert.pem
    SSLCertificateKeyFile /etc/ssl/privkey.pem
    SSLCertificateChainFile /etc/ssl/chain.pem
</VirtualHost>

常见问题

为什么通配符不能用 HTTP-01?

HTTP-01 通过在 http://hostname/.well-known/acme-challenge/... 放置文件来验证特定主机名。通配符覆盖无限子域名——没有单一服务器来放置文件。DNS-01 通过区域级别的 TXT 记录证明对整个域名的控制。

*.example.com 覆盖 example.com 吗?

不覆盖。裸域名是独立的。在证书请求中同时添加 *.example.comexample.com。GetHTTPS 和 Certbot 都支持在一张证书中包含两者。

能从 ZeroSSL 获取免费通配符吗?

不能。ZeroSSL 将通配符证书限制为付费套餐($10/月+)。Let’s Encrypt 免费提供通配符

同一域名能有多张通配符证书吗?

可以。没有技术限制。你可以有 *.example.com*.staging.example.com 作为独立证书。Let’s Encrypt 的速率限制是每注册域名每周 50 张证书。

通配符证书覆盖嵌套子域名吗?

不覆盖。*.example.com 覆盖 www.example.comapi.example.com,但不覆盖 dev.api.example.com。对于嵌套子域名,你需要单独的通配符如 *.api.example.com

如何测试通配符证书对特定子域名是否有效?

将子域名的 DNS 指向你的服务器,然后测试:

echo | openssl s_client -connect subdomain.example.com:443 -servername subdomain.example.com 2>/dev/null | openssl x509 -noout -subject -dates

证书应显示 CN=*.example.com 或 SAN 字段中有 *.example.com。如果得到连接错误,说明子域名的 DNS 没有指向托管通配符证书的服务器。

能在多台服务器上使用通配符证书吗?

可以。在处理子域名的每台服务器上安装相同的 fullchain.pemprivkey.pem。证书不知道自己在哪台服务器上——它只验证主机名。

相关文章

快速开始 2026-05-07
如何免费获取通配符 SSL 证书
使用 GetHTTPS 从 Let's Encrypt 免费获取通配符 SSL 证书 (*.example.com)。仅需 DNS-01 验证。涵盖 Cloudflare、Route 53、GoDaddy 和 Namecheap DNS 设置。
SSL 与证书 2026-05-07
多域名 SSL 证书(SAN)
多域名 SAN 证书可以在一张证书中保护多个不同域名。了解 SAN 的工作原理、何时用 SAN 而非通配符,以及如何通过 GetHTTPS 获取。
SSL 与证书 2026-05-07
SSL 证书类型详解:DV、OV 和 EV
对比域名验证(DV)、组织验证(OV)和扩展验证(EV)SSL 证书。了解验证方式、费用的差异,以及何时真正需要每种类型。
在浏览器中获取免费 SSL 证书
无需安装,无需账号。私钥始终留在你的设备上。
获取证书