# 多域名证书（SAN 证书 / UCC 证书）是什么？

> 多域名证书是在 SAN 扩展中列出多个不同主机名、让一张证书同时保护多个域名的 TLS 证书。

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

多域名证书也叫 SAN 证书或 UCC（Unified Communications Certificate，统一通信证书），本质上就是一张普通的 X.509 TLS 证书，只是它的 [SAN](https://ssl.sh/zh/glossary/san/)（主题备用名称）扩展里写了不止一个 DNS 名称。这些名称不必属于同一个主域：`example.com`、`www.example.com`、`example.net`、`mail.example.org` 可以放在同一张证书里，部分 CA 还允许混入通配符名称。UCC 这个叫法来自 Microsoft Exchange 等统一通信服务器，它们通常要同时响应多个主机名。

## 为什么重要
一张证书、一把私钥就能服务多个站点，部署和续期都更集中，适合一台服务器承载多个域名的场景。浏览器只用 SAN 里的名称匹配访问的主机名，Chrome 58 起不再回退检查[通用名称（CN）](https://ssl.sh/zh/glossary/common-name/)，所以每个域名都必须写进 SAN。每个名称都要单独完成域名验证，增删域名都需要重新签发证书。在宝塔面板里为一个站点申请 Let's Encrypt 证书时勾选多个域名，得到的就是一张多域名证书。

## 例子
```bash
openssl req -new -key example.com.key -out example.com.csr \
  -subj "/CN=example.com" \
  -addext "subjectAltName=DNS:example.com,DNS:www.example.com,DNS:example.net"
openssl x509 -in example.com.crt -noout -ext subjectAltName
```

## 常见误区
- **CN 写对就行。** 现代客户端忽略 CN，所有域名（包括 CN 里那个）都要出现在 SAN 中。
- **证书里的域名必须属于同一家公司。** DV 证书只要求申请者能证明控制每个域名。
- **证书里的其他域名别人看不到。** 任何人查看证书都能看到全部名称，它们也会被公开记录到[证书透明度](https://ssl.sh/zh/glossary/certificate-transparency/)日志里。

## 相关术语

- [SAN](https://ssl.sh/zh/glossary/san/): SAN 即主体备用名称，是 X.509 证书中列出其适用的所有域名、IP 地址等身份的扩展，客户端按它校验主机名。
- [通配符证书](https://ssl.sh/zh/glossary/wildcard-certificate/): 通配符证书是名称以星号开头（如 *.example.com）、可匹配该域名下任意一级子域名的 TLS 证书。
- [CN](https://ssl.sh/zh/glossary/common-name/): CN 即通用名称，是证书主体中曾用来填写域名的属性；现代浏览器已忽略它，只按 SAN 扩展匹配域名。
- [证书透明度](https://ssl.sh/zh/glossary/certificate-transparency/): 证书透明度（CT）是一套公开、只可追加的日志系统，记录所有公开信任的 TLS 证书，让任何人都能审计 CA 签发了什么。
- [X.509](https://ssl.sh/zh/glossary/x509/): X.509 是 ITU-T 制定的公钥证书标准格式，其互联网配置规范 RFC 5280 规定了 TLS 所用证书的结构和验证方法。
- [SSL 证书](https://ssl.sh/zh/glossary/ssl-certificate/): SSL 证书是由 CA 签名的 X.509 证书，把公钥与一个或多个域名（或 IP 地址）绑定，供 TLS 客户端验证服务器身份。
- [SNI](https://ssl.sh/zh/glossary/sni/): SNI 是 TLS 的一个扩展，客户端在 ClientHello 中写明要访问的域名，使同一个 IP 能为多个 HTTPS 站点分别返回各自的证书。
