# 证书序列号（Serial Number）是什么？

> 证书序列号是 CA 为每张证书分配的正整数，与颁发者名称一起唯一标识一张证书，吊销列表和 OCSP 都靠它定位证书。

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

序列号是每张 [X.509](https://ssl.sh/zh/glossary/x509/) 证书中的一个字段。RFC 5280 要求它是不超过 20 字节的正整数，并在同一个 CA 签发的所有证书中唯一，因此“颁发者 + 序列号”可以精确指向一张证书。吊销机制正是基于这一点：[CRL](https://ssl.sh/zh/glossary/crl/) 列出被吊销证书的序列号，[OCSP](https://ssl.sh/zh/glossary/ocsp/) 请求查询的也是某个颁发者下的某个序列号。

## 为什么重要
Baseline Requirements 要求序列号非顺序递增、大于零，并且至少包含 64 位来自密码学安全随机数生成器的输出。不可预测的序列号让攻击者难以控制 CA 实际签名的数据，2008 年利用 MD5 碰撞伪造 CA 证书的攻击正是利用了可预测的序列号。曾有 CA 因序列号生成不符合这条规则而不得不批量替换证书，所以序列号是实实在在的合规项，不只是个编号。排查问题或申请吊销时，向 CA 或云厂商客服提供序列号，比只提供域名更能准确定位到具体哪一张证书。

## 例子
```bash
openssl x509 -in cert.pem -noout -serial -issuer
```

OpenSSL 以十六进制输出序列号，浏览器和 CT 查询工具常用冒号分隔显示同一个值。

## 常见误区
- **序列号全球唯一。** 它只在同一颁发者内唯一，不同 CA 可能用到相同的序列号。
- **续期后的证书序列号不变。** 每次签发都会分配新的序列号，即使密钥和域名都没变。
- **序列号就是指纹。** 序列号由 CA 写在证书里，指纹是对整张证书计算出的哈希值。

## 相关术语

- [X.509](https://ssl.sh/zh/glossary/x509/): X.509 是 ITU-T 制定的公钥证书标准格式，其互联网配置规范 RFC 5280 规定了 TLS 所用证书的结构和验证方法。
- [CRL](https://ssl.sh/zh/glossary/crl/): CRL 是由 CA 签名并定期重新发布的证书吊销列表，列出它在证书到期前就已吊销的证书序列号。
- [OCSP](https://ssl.sh/zh/glossary/ocsp/): OCSP 是 RFC 6960 定义的在线证书状态协议，客户端可以向 CA 的响应服务器查询某一张证书当前是有效、已吊销还是未知。
- [证书指纹](https://ssl.sh/zh/glossary/certificate-fingerprint/): 证书指纹是对证书 DER 编码计算出的哈希值（通常用 SHA-256），用来唯一标识一张证书，它本身并不存储在证书里。
- [证书颁发机构](https://ssl.sh/zh/glossary/certificate-authority/): 证书颁发机构（CA）是负责审核申请者、签发数字证书，并把公钥与域名或身份绑定在一起的机构。
- [证书吊销](https://ssl.sh/zh/glossary/revocation/): 证书吊销是 CA 在证书到期前宣布其作废的操作，通过 CRL 或 OCSP 对外公布，使客户端不再信任这张证书。
