# 中间证书是什么？定义、例子与常见误区

> 中间证书是由根证书（或上级中间证书）签发、用来签发网站证书的 CA 证书，服务器必须把它和网站证书一起发送给客户端。

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

中间证书连接网站的终端证书和 [根证书](https://ssl.sh/zh/glossary/root-certificate/)。它由根证书或上一级中间证书签发，基本约束里带有 `CA:TRUE`，因此对应的密钥可以继续签发证书。公共 CA 几乎都用中间证书签发 TLS 证书，以便根私钥保持离线；运营中间证书的一方就是 [下级 CA](https://ssl.sh/zh/glossary/subordinate-ca/)。

## 为什么重要
客户端本地只有根证书，没有中间证书，所以服务器必须把构建 [证书链](https://ssl.sh/zh/glossary/certificate-chain/) 所需的中间证书全部发出。漏配中间证书是最常见的部署错误之一：桌面浏览器可能因为缓存过或按 AIA 地址自动下载而显示正常，但 curl、Python、Java、Go 和很多安卓 App 会报“unable to get local issuer certificate”之类的错误。在宝塔面板或云厂商控制台粘贴证书时，应粘贴完整链（网站证书在前、中间证书在后），而不是只贴网站证书。CA 也会定期更换中间证书，把某个中间证书写死在程序里迟早会出问题。

## 例子
nginx 中把网站证书放在前、中间证书放在后，合并成一个文件：

```bash
cat example.com.crt intermediate.crt > fullchain.pem
```

```nginx
ssl_certificate     /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
```

## 常见误区
- **Chrome 能打开就说明证书链完整。** 浏览器能自动补齐缺失的中间证书，其他客户端不一定能，应该用 `openssl s_client` 或在线检测工具验证。
- **在客户端信任库里加上中间证书即可。** 正确做法是修好服务器配置，而不是在每个客户端上打补丁。
- **Certbot 的 cert.pem 就够用。** `cert.pem` 只有网站证书本身，nginx 应该引用 `fullchain.pem`。

## 相关术语

- [根证书](https://ssl.sh/zh/glossary/root-certificate/): 根证书是位于证书链顶端、由 CA 自签名的证书，预装在操作系统或浏览器的信任库中，作为验证其他证书的信任锚。
- [证书链](https://ssl.sh/zh/glossary/certificate-chain/): 证书链是从网站终端证书经中间证书一直到受信任根证书的有序证书序列，每一张都由下一张签名。
- [下级 CA](https://ssl.sh/zh/glossary/subordinate-ca/): 下级 CA 是 CA 证书由另一个 CA（通常是根 CA）签发的证书颁发机构，一般负责实际签发终端证书。
- [fullchain](https://ssl.sh/zh/glossary/fullchain/): fullchain 是依次包含站点证书和中间证书的 PEM 文件，让客户端能把站点证书连到受信任的根证书。
- [AIA](https://ssl.sh/zh/glossary/aia/): AIA 即颁发机构信息访问，是 X.509 证书扩展，提供签发 CA 证书的下载地址，以及（可选的）该 CA 的 OCSP 服务地址。
- [CA Bundle](https://ssl.sh/zh/glossary/ca-bundle/): CA Bundle 是把多张 PEM 证书拼接在一起的文件，既可能是服务器要发送的中间证书链，也可能是客户端信任的根证书集合。
- [证书颁发机构](https://ssl.sh/zh/glossary/certificate-authority/): 证书颁发机构（CA）是负责审核申请者、签发数字证书，并把公钥与域名或身份绑定在一起的机构。
