2. PKI 体系架构:CA、RA、VA 的角色分工、证书链与信任锚、PKI 的层次化模型
聊 PKI,很多人第一反应就是“发证书的”。其实没那么简单。PKI 是一个完整的体系,里面有明确的分工。我刚开始接触 PKI 时,也以为 CA 就是全部,后来踩了坑才明白——RA 和 VA 同样关键。
说白了,PKI 要解决三个核心问题:谁来发证、谁来审核、谁来验证。这三个问题分别对应 CA、RA、VA。
2.1 CA、RA、VA 的角色分工
2.1.1 CA——证书颁发机构
CA 是整个 PKI 的核心。它负责签发、吊销和管理证书。CA 掌握着根私钥,这是整个信任体系的根基。
CA 的主要职责:
- 签发证书(终端实体证书、下级 CA 证书)
- 维护证书吊销列表(CRL)
- 响应 OCSP 状态查询
- 管理密钥生命周期
2.1.2 RA——注册机构
RA 是 CA 的前端。它负责审核申请人的身份,但不直接签发证书。RA 把审核通过的信息提交给 CA,CA 再签发证书。
为什么要把 RA 和 CA 分开?说白了就是职责分离。CA 只管签名,RA 只管审核。这样即使 RA 被攻破,攻击者也拿不到签名私钥。
RA 的主要职责:
- 接收证书申请
- 验证申请人身份
- 审核证书属性(有效期、密钥用法等)
- 将审核结果提交给 CA
2.1.3 VA——验证机构
VA 负责证书状态的实时查询。它不签发证书,只回答“这个证书现在是否有效”。
VA 通常通过两种方式提供服务:
- OCSP 响应器:在线查询,实时返回证书状态
- CRL 分发点:定期发布吊销列表,客户端下载后本地验证
我记得有一次,客户反馈说证书验证特别慢。查了半天,发现是 OCSP 响应器部署在海外,每次查询都要跨洋。后来我们在每个区域都部署了 VA 节点,问题就解决了。
2.2 证书链与信任锚
证书链,说白了就是一条从终端证书到根证书的信任路径。每个证书都由上一级 CA 签发,最终追溯到根 CA。
举个例子:
终端设备证书 ← 由 ← 中间 CA 证书 ← 由 ← 根 CA 证书(自签名)
验证过程是这样的:
- 客户端拿到终端证书
- 找到签发它的 CA 证书(中间 CA)
- 验证终端证书的签名是否由中间 CA 的私钥生成
- 继续向上找,直到根 CA
- 根 CA 证书是自签名的,客户端必须信任它(信任锚)
证书链的长度会影响性能。每多一级,验证时就要多一次签名校验。我个人建议,生产环境中证书链不要超过 3 级(根 CA → 中间 CA → 终端证书)。
2.3 PKI 的层次化模型
PKI 的层次化模型,说白了就是一棵树。根 CA 在最上面,下面是中间 CA,再下面是终端实体。
为什么要用层次化模型?
- 风险隔离:根 CA 离线存储,中间 CA 在线服务。即使中间 CA 被攻破,根 CA 还在,可以吊销中间 CA 证书,重新签发。
- 灵活扩展:不同业务线可以部署不同的中间 CA,互不影响。
- 策略分离:每个中间 CA 可以有自己的证书策略(有效期、密钥用法等)。
下面这张图展示了典型的 PKI 层次化模型:
2.4 层次化模型的最佳实践
在实际部署中,我建议遵循以下原则:
| 层级 | 部署位置 | 安全要求 | 密钥存储 |
|---|---|---|---|
| 根 CA | 离线机房 | 物理隔离、双人操作 | HSM 或智能卡 |
| 中间 CA | 内网服务区 | 网络隔离、访问控制 | HSM 或软件加密 |
| RA | 业务部门 | 身份认证、审计日志 | 不存储私钥 |
| VA | DMZ 或边缘节点 | 高可用、DDoS 防护 | 不存储私钥 |
总结一下:CA 是心脏,RA 是眼睛,VA 是耳朵。三者配合,才能构建一个可信的 PKI 体系。证书链是信任的传递路径,信任锚是信任的起点。层次化模型则是让这个体系可扩展、可管理的关键。