1. PKI 基础回顾:公钥基础设施概念、数字证书与CA、证书生命周期管理

聊 EST 和 SCEP 之前,咱们得先把 PKI 这块地基夯实了。说实话,我见过太多工程师一上来就纠结协议细节,结果证书链配不对、吊销列表没配,折腾半天全白干。所以这一章,咱们把 PKI 的核心概念过一遍。

1.1 公钥基础设施到底是什么?

PKI,全称 Public Key Infrastructure,中文叫公钥基础设施。说白了,它是一套规则、流程、软硬件的集合,用来解决一个核心问题:你怎么信任一个远程的实体?

你想想看,你在网上买东西,怎么确认那个网站是真的?靠的就是 PKI。它通过非对称加密、数字证书、CA 这些机制,构建了一个信任链。

我个人习惯把 PKI 拆成三个层面来理解:

  • 策略层:谁可以发证书?证书怎么用?有效期多长?这些规则。
  • 操作层:CA 服务器、RA 注册机构、证书库这些实际干活的东西。
  • 数据层:证书本身、CRL 证书吊销列表、OCSP 响应数据。

我在项目中遇到过一家公司,策略层写得天衣无缝,结果操作层用的 CA 软件版本太老,生成的证书不兼容新设备。嗯,这里要注意,三层得一起抓。

1.2 数字证书与CA

数字证书,你可以把它理解成网络世界的身份证。它把一个人的身份信息和一把公钥绑在一起。谁来做这个担保?就是 CA,证书颁发机构。

CA 的角色很关键。它用自己的私钥给证书签名,证明这个证书是真的。你信任 CA,就信任它签发的所有证书。这就是信任链的起点——根 CA。

一个标准的 X.509 数字证书包含哪些字段?我列个表,你对照着看:

字段 说明 我的备注
版本号 V1、V2、V3,现在基本都是 V3 V3 才支持扩展字段,很重要
序列号 CA 分配的唯一编号 吊销时靠这个查
签名算法 比如 SHA256-RSA 别用 SHA1 了,不安全
颁发者 签发这个证书的 CA 名称 DN 格式,比如 CN=MyCA
有效期 起始时间和结束时间 我建议别超过 2 年
主体 证书持有者的名称 可以是域名、邮箱、设备 ID
公钥 持有者的公钥信息 算法 + 密钥值
扩展 密钥用法、CA 标志、SAN 等 EST/SCEP 配置时经常要改这里
小提示: 扩展字段里的「密钥用法」和「扩展密钥用法」决定了这张证书能干什么。比如,用于 TLS 服务器认证的证书,就不能用来给其他证书签名。我曾经见过有人把 CA 证书当服务器证书用,结果浏览器直接报错。

1.3 证书生命周期管理

证书不是永久的。从生到死,它有一套完整的管理流程。我把它分成六个阶段,你记一下:

  1. 申请:终端生成密钥对,提交 CSR(证书签名请求)。
  2. 验证:CA 确认申请者的身份。手动验证还是自动验证,取决于策略。
  3. 签发:CA 用私钥签名,生成证书。
  4. 分发:把证书发给申请者,或者发布到证书库。
  5. 使用:终端用证书进行身份认证、加密通信。
  6. 吊销/更新:证书到期前更新,或者私钥泄露时吊销。

这里有个坑,我重点说一下。很多人在证书快过期时才想起来更新,结果设备离线了,证书拿不到,业务直接中断。我曾经吃过这个亏,后来养成了习惯:证书有效期过半就启动更新流程。

警告: 证书吊销不等于删除。吊销后的证书会进入 CRL(证书吊销列表),或者通过 OCSP 实时查询。如果你不配 CRL 分发点,客户端就无法知道证书是否被吊销。这在 EST/SCEP 的自动续期场景里尤其要小心。

为了让你更直观地理解 PKI 的整体架构,我画了一张图:

PKI 核心架构与证书生命周期 PKI 核心架构与证书生命周期 根 CA 中间 CA RA 注册机构 证书库 / LDAP 终端实体 证书生命周期流程 ① 申请 ② 验证 ③ 签发 ④ 分发 ⑤ 使用 ⑥ 吊销 / 更新(循环回到①)

这张图把 PKI 的核心角色和证书生命周期串起来了。你看,根 CA 在最上面,它信任中间 CA,中间 CA 再给终端实体发证书。RA 负责审核,证书库负责存储。整个流程从申请到吊销,环环相扣。