# 通配符证书是什么？定义、例子与常见误区

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

Source: https://ssl.sh/zh/glossary/wildcard-certificate/
Last updated: 2026-11-10

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

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

## 例子
用 acme.sh 配合阿里云 DNS API 申请：

```bash
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`。
- **一张通配符证书一定更省事也更安全。** 管理上省事，但私钥共享扩大了泄露影响面；按服务拆分证书或使用[多域名证书](https://ssl.sh/zh/glossary/multi-domain-certificate/)可以缩小风险。

## 相关术语

- [多域名证书](https://ssl.sh/zh/glossary/multi-domain-certificate/): 多域名证书是在 SAN 扩展中列出多个不同主机名、让一张证书同时保护多个域名的 TLS 证书。
- [SAN](https://ssl.sh/zh/glossary/san/): SAN 即主体备用名称，是 X.509 证书中列出其适用的所有域名、IP 地址等身份的扩展，客户端按它校验主机名。
- [DNS-01](https://ssl.sh/zh/glossary/dns-01/): DNS-01 是一种 ACME 验证方式，客户端在 _acme-challenge 子域名下发布由 CA 质询计算出的 TXT 记录来证明域名控制权。
- [Let's Encrypt](https://ssl.sh/zh/glossary/let-s-encrypt/): Let's Encrypt 是由非营利组织 ISRG 运营的免费、自动化证书颁发机构，通过 ACME 协议签发域名验证型 TLS 证书。
- [CN](https://ssl.sh/zh/glossary/common-name/): CN 即通用名称，是证书主体中曾用来填写域名的属性；现代浏览器已忽略它，只按 SAN 扩展匹配域名。
- [EV 证书](https://ssl.sh/zh/glossary/ev-certificate/): EV 证书是按照 CA/浏览器论坛《EV 指南》完成最严格身份审核后签发的 TLS 证书。
- [私钥](https://ssl.sh/zh/glossary/private-key/): 私钥是非对称密钥对中保密的那一半，TLS 服务器用它证明自己拥有证书里的那把公钥。
