1. 第1节 PKI基础概念与原理

公钥基础设施(PKI)——说白了就是一套管理密钥和证书的体系。我刚开始接触时,觉得它就是个“证书发放机”,后来踩了几个坑才明白:没有 PKI,安全通信基本是裸奔。

1.1 公钥基础设施定义

PKI 是 Public Key Infrastructure 的缩写。它不是单一软件,而是一套由硬件、软件、人员、策略和流程组成的综合体系。目标就一个:在不可信网络中建立可信身份和加密通道。

我习惯把 PKI 看作“数字世界的身份证系统”。你拿身份证去办事,系统信任发证机关;同样,网站拿证书给浏览器,浏览器信任发证的 CA。这就是 PKI 的根基。

核心组件清单:
  • CA(证书颁发机构)——发证的权威
  • RA(注册机构)——核实申请人身份
  • 证书库——存放已签发和已吊销的证书
  • 密钥对——公钥+私钥,加密与签名的工具
  • 数字签名——防篡改、防抵赖的“指纹”
  • 信任模型——决定“我该信谁”的规则

1.2 CA 与 RA 的角色分工

很多初学同学把 CA 和 RA 混为一谈。其实它们是两码事。

CA(Certificate Authority) 是签发证书的最终决策者。它用自己的私钥给证书打上“官方认证”印章。一旦私钥泄露,整个信任链就完蛋——所以生产环境中 CA 必须物理隔离、脱机存储。

RA(Registration Authority) 是替 CA 跑腿的。它负责验证申请人身份、收集证书请求、检查资料是否合规。RA 没有签发证书的权力,但能大大减轻 CA 的负载,尤其在大型企业里,RA 可以部署多个地域。

避坑指南:我曾经在一个项目里,把 RA 和 CA 部署在同一台服务器上,觉得省事。结果 RA 的 Web 接口被人爆破了,攻击者直接提权拿到了 CA 的私钥文件……嗯,那次事故后所有人都老实了。RA 和 CA 必须物理或逻辑隔离,这是铁的纪律。

我建议你思考一个问题:如果你的 PKI 需要支持 10 万用户,每天签发 500 张证书,RA 需要几个节点?CA 需要冷备还是热备?答案会影响到整个集群设计。

1.3 密钥对与证书

密钥对是 PKI 的原子单位。公钥公开,私钥保密。证书就是把公钥和身份信息绑定在一起的“包装纸”,并由 CA 对这张包装纸签字。

概念私钥公钥证书
存储位置用户自己(或 HSM)公开公开(证书库)
用途签名、解密验签、加密证明公钥归属
泄露后果身份被盗、加密失效无直接影响被吊销、信任断裂

证书格式最常见的是 X.509 v3。里面包含:版本、序列号、签名算法、颁发者、有效期、主体、公钥、扩展项。你想想看,浏览器凭什么相信一个证书?就靠后面这个签名和信任链。

# 一条简单的自签名证书生成命令(仅供测试)
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes

我在项目中见过不少工程师直接拿这条命令的产物上生产。明明可以用 CA 签发,偏要自签名,结果业务系统之间互相不认,排查一整天。嗯,这里要注意:自签名证书只适合开发环境,生产环境必须有完整的 CA 体系。

1.4 数字签名

数字签名不是“画个图”,而是用私钥对数据的哈希值做加密。验证方用公钥解密哈希,再和原始数据的哈希比对——一样则证明数据未被篡改且来自私钥持有者。

我习惯把签名比作“密封条 + 指纹”。快递盒子上贴个密封条,撕破就暴露;但签名还加了一层——只有发件人私钥才能产生这个“指纹”。接收方哪怕有千万人,只要用你的公钥能验过,就认是你的。

记忆技巧:签名 = 私钥加密哈希;验证 = 公钥解密哈希。别跟加密搞反了——加密是用公钥加密,私钥解密。

1.5 信任模型

信任模型解决的是“我该信谁”的问题。最常用的是层次信任模型:根 CA → 中间 CA → 终端证书。浏览器预先装了根证书列表(比如 Mozilla 的根证书库),只要链上每个证书都没过期、没吊销,浏览器就信任。

另一种是交叉信任模型,常见于企业并购或联邦身份场景。两个 CA 互相交换根证书,让对方的证书链也能被己方识别。我前几年帮一家银行和保险公司做互信集成,就是因为两套 PKI 各自独立,最后通过交叉认证打通了证书验证。

三种主流信任模型对比:
  1. 层次模型:根 CA 权威最高,树状结构,管理清晰,但根 CA 一旦泄露全链崩溃。
  2. 网状模型:各 CA 交叉互信,灵活但复杂度高,不适合大规模部署。
  3. 桥 CA 模型:用一个桥 CA 连接多个独立 PKI 域,适合异构多组织环境。

我建议在设计高可用 PKI 集群前,先确定信任模型。这会影响 CA 的部署数量、证书链长度、以及后续的 CRL/OCSP 策略。

PKI 核心体系结构 公钥基础设施 (PKI) 证书颁发机构 (CA) 签发、吊销、管理证书 注册机构 (RA) 身份审核、请求受理 证书库 (Repository) CRL / OCSP 响应 密钥对 (Key Pair) 公钥 + 私钥生成/存储 证书与密钥绑定 数字签名 (Digital Signature) 防篡改、防抵赖、身份验证 信任模型 (Trust Model) 层次模型 / 网状模型 / 桥 CA 模型 图:PKI 各组件关系——CA 签发证书、RA 审核身份、密钥对 + 证书 + 数字签名构成信任基础,最终由信任模型决定验证路径。

这套图我画了很多次才精简到现在这样。每次培训我都会指着“信任模型”那块反复讲:根 CA 的安全就是 PKI 的生命线。如果根 CA 失守,所有下游证书瞬间变成废纸。所以高可用 PKI 集群的第一课:先保护好你的根。

以上就是 PKI 基础概念的核心内容。记住这些,后面讲集群部署时你才不会懵。