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 配置时经常要改这里 |
1.3 证书生命周期管理
证书不是永久的。从生到死,它有一套完整的管理流程。我把它分成六个阶段,你记一下:
- 申请:终端生成密钥对,提交 CSR(证书签名请求)。
- 验证:CA 确认申请者的身份。手动验证还是自动验证,取决于策略。
- 签发:CA 用私钥签名,生成证书。
- 分发:把证书发给申请者,或者发布到证书库。
- 使用:终端用证书进行身份认证、加密通信。
- 吊销/更新:证书到期前更新,或者私钥泄露时吊销。
这里有个坑,我重点说一下。很多人在证书快过期时才想起来更新,结果设备离线了,证书拿不到,业务直接中断。我曾经吃过这个亏,后来养成了习惯:证书有效期过半就启动更新流程。
为了让你更直观地理解 PKI 的整体架构,我画了一张图:
这张图把 PKI 的核心角色和证书生命周期串起来了。你看,根 CA 在最上面,它信任中间 CA,中间 CA 再给终端实体发证书。RA 负责审核,证书库负责存储。整个流程从申请到吊销,环环相扣。