1. 证书基础回顾:X.509标准、证书链、公钥基础设施(PKI)核心概念

聊证书吊销之前,咱们得先把地基夯实。说实话,很多搞安全的同学对证书的理解停留在「装了就完事」,一旦遇到吊销场景就懵了。我个人习惯是,不管讲什么新方案,先把底层概念过一遍,这样后面讲 OCSP、CRL 的时候你才不会觉得飘。

好,咱们开始。

1.1 什么是 X.509?它到底规定了什么?

X.509 不是一种「证书」,它是一个标准。说白了,它定义了证书长什么样、里面该塞哪些字段、怎么签名、怎么验证。

我记得刚入行时,有同事问我:「X.509 和 SSL 证书有什么区别?」我当时愣了一下,后来才搞明白——SSL 证书只是 X.509 标准的一个具体应用。你平时在浏览器里看到的那一串「颁发给、颁发者、有效期」,全是 X.509 规定的。

一个标准的 X.509 v3 证书,核心字段如下:

字段 说明 我踩过的坑
版本号 目前主流是 v3(值为2) v1/v2 不支持扩展,别用了
序列号 CA 分配的唯一整数 吊销时就是靠它定位证书
签名算法 如 sha256WithRSAEncryption 别用 SHA-1,已经被撞了
颁发者 签发该证书的 CA 名称 拼写错了会导致链构建失败
有效期 notBefore / notAfter 注意时区问题,我吃过亏
主体 证书持有者身份 CN 和 SAN 要匹配域名
公钥 算法 + 公钥值 RSA 2048 起步,别省
扩展 v3 新增,如 密钥用法、CA 标志 吊销相关的 CRL/OCSP 地址就在这里
一个小技巧: 我习惯用 openssl x509 -text -in cert.pem 查看证书的完整结构。你试试看,所有字段一目了然。

1.2 证书链:为什么不是一张证书搞定?

你想想看,如果全世界只有一张根证书,那它一旦泄露,整个互联网就完了。所以 PKI 设计了一个层级结构——证书链。

典型的证书链长这样:

根 CA(自签名)
  └── 中间 CA(由根 CA 签发)
        └── 终端证书(由中间 CA 签发,用于网站/客户端)

为什么要有中间 CA?我在项目中遇到过一件事:某公司根证书私钥被运维误删了,幸好他们用了中间 CA 架构,根证书离线存储,中间 CA 重新签发就行,损失降到了最低。如果只有一层,那得重新部署所有终端证书,想想就头大。

验证证书链时,系统会从终端证书开始,逐级向上验证签名,直到信任的根证书。这个过程中,任何一级证书被吊销,整条链就废了。

注意: 我曾经见过一个案例,有人只验证了终端证书的有效期,没检查中间 CA 是否被吊销。结果中间 CA 已经被撤销了,但终端证书还在「有效」运行。嗯,这其实是个大漏洞。

1.3 PKI 核心概念:不只是证书

PKI(公钥基础设施)不是单指证书,它是一个完整的体系。我把它拆成四个核心组件:

  • CA(证书颁发机构)——负责签发和吊销证书。它是 PKI 的「信任源头」。
  • RA(注册机构)——负责验证申请者身份。CA 不直接面对用户,RA 干这活。
  • 证书库——存储已签发证书和吊销信息的地方。LDAP 或 HTTP 服务器都行。
  • 终端实体——使用证书的人或设备。比如你的浏览器、服务器。

这里面有个关键点:信任锚。你的操作系统或浏览器里预置了一批根证书,这些就是信任锚。只要证书链能追溯到这些根,系统就认为它是可信的。

但信任不是永久的。证书可能因为私钥泄露、域名变更、员工离职等原因被吊销。这就是咱们这门课的核心——如何及时发现并处理被吊销的证书。

1.4 一张图看懂 PKI 与证书链

下面这张 SVG 图是我自己画的,把 PKI 的核心流程串起来了。你仔细看,从根 CA 到终端证书,再到吊销检测,都在里面。

PKI 核心架构与证书链流程图 PKI 核心架构与证书链 根 CA(自签名) 中间 CA 终端证书 吊销检测 CRL / OCSP 证书库 LDAP / HTTP 说明: 证书链从根 CA 逐级签发到终端证书。吊销检测(CRL/OCSP)和证书库是 PKI 的配套基础设施, 缺少它们,证书的「信任」就是一次性的,无法应对私钥泄露等突发情况。

1.5 为什么这些基础对证书吊销至关重要?

好,现在你知道了 X.509 证书的结构、证书链的层级、PKI 的组件。那这些跟证书吊销有什么关系?

关系大了去了。

  • 序列号——吊销列表(CRL)里就是靠序列号标记哪些证书被废了。
  • 颁发者——CRL 和 OCSP 响应里必须指明是哪个 CA 签发的吊销信息。
  • 扩展字段——CRL 分发点(CDP)和 OCSP 响应地址就藏在证书的扩展里。没有它们,客户端根本不知道去哪查吊销状态。
  • 证书链——如果中间 CA 被吊销,它签发的所有终端证书都得跟着失效。这就是「级联吊销」效应。
核心观点: 证书吊销不是孤立的功能,它深深嵌在 X.509 标准和 PKI 体系里。不理解这些基础,你后面配置 CRL 服务器、调优 OCSP 响应器的时候,一定会踩坑。

我个人习惯是,每接触一套 PKI 系统,第一件事就是导出根证书和中间 CA 证书,用 openssl 看看它们的扩展字段里有没有 CDP 和 OCSP 地址。没有?那这套系统的吊销能力基本为零,得补上。