1. PKI 基础概念:公钥基础设施、数字证书、证书颁发机构
说到 PKI,很多人第一反应就是「哦,证书那个东西」。其实没那么简单。PKI 是一整套体系,包括硬件、软件、人和策略。我早年刚接触这行的时候,也觉得 PKI 就是个发证书的工具,后来踩了几个坑才明白,它本质上解决的是网络世界里「你是谁」和「你说了算不算」的问题。
你想想看,互联网上两个人要通信,怎么保证对方不是假冒的?怎么保证消息没被篡改?PKI 就是干这个的。它提供了一套信任机制,让互不相识的双方能建立安全通道。
1.1 公钥基础设施到底是什么
说白了,PKI 就是一套「信任管理」的框架。它包含了几个核心组件:
- 证书颁发机构(CA): 负责签发和管理数字证书,是整个体系的信任锚点。
- 注册机构(RA): 负责验证申请者的身份,RA 确认后 CA 才签发证书。很多中小型场景下 CA 和 RA 是合在一起的。
- 证书库: 存放已签发证书和证书吊销列表(CRL)的地方,一般用 LDAP 目录或 HTTP 服务器。
- 密钥备份与恢复系统: 我见过不少公司把私钥丢了,结果整个加密数据都打不开。所以这个组件虽然不常被提起,但真出事的时候特别要命。
我个人习惯把 PKI 比作现实世界的「身份证系统」。CA 就是公安局,负责发身份证;RA 是派出所,核实你是不是本人;证书就是身份证本身;而证书库就是全国人口信息库。这个类比虽然不完美,但用来入门理解足够了。
1.2 数字证书:网络世界的身份证
数字证书的核心作用是把一个公钥和某个实体(个人、服务器、组织)绑定起来。它遵循 X.509 标准,这东西是国际电信联盟(ITU)定义的,现在用的最多的是 X.509 v3 版本。
| 字段 | 说明 | 我在项目中踩过的坑 |
|---|---|---|
| 版本号 | 标识 X.509 版本号,v1、v2、v3 | v2 基本没人用了,直接上 v3 就对了 |
| 序列号 | CA 签发的唯一编号 | 曾经遇到过序列号重复的奇葩情况,后来发现是 CA 软件 bug |
| 签名算法 | CA 签名时使用的算法,比如 SHA256-RSA | 别用 SHA1,早就被攻破了,我亲眼见过 SHA1 证书被浏览器报红 |
| 颁发者 | 签发该证书的 CA 名称 | 根证书和中间证书的颁发者字段要仔细核对,链条不对谁都救不了 |
| 有效期 | 证书生效和失效时间 | 我最怕浏览器突然弹「证书已过期」,每次排查都是一身汗 |
| 主体 | 证书持有者的信息,比如域名或组织名 | Common Name(CN)和 Subject Alternative Name(SAN)的坑我后面会详细说 |
| 公钥 | 持有者的公钥信息 | 密钥长度建议至少 2048 位,1024 位的现在基本不推荐了 |
| 扩展字段 | v3 新增的功能,包含密钥用法、基础约束等 | Key Usage 和 Extended Key Usage 写错了,证书可能就用不了 |
看一个实际的证书结构,用 OpenSSL 就能查看:
openssl x509 -in example.crt -text -noout
这条命令会把证书所有字段解析出来。我刚入行的时候,最喜欢用这条命令来检查证书对不对,现在也经常这么干。
1.3 证书颁发机构:信任的起点
CA 是整个 PKI 体系的核心。它负责签发、管理和撤销数字证书。CA 自己也有一个证书,叫「自签名证书」,也就是根证书。浏览器和操作系统里内置的那些根证书,就是各大 CA 的自签名证书。
CA 的信任是链式的。以我们常见的 Web 场景为例:
- 根 CA: 信任的起点,自签名,一般离线保存。我记得有一次帮客户搭私有 PKI,根 CA 的私钥我用硬件安全模块(HSM)锁起来了,物理上断网,生怕被偷了。
- 中间 CA: 受根 CA 签发,用于分担风险。根 CA 一般不直接签发终端证书,而是签发几个中间 CA,由中间 CA 去签发用户证书。
- 终端证书: 最终给服务器或个人用的证书,由中间 CA 签发。
这样做的好处很明显——如果中间 CA 出了问题,吊销它就行,不影响根 CA。我待过的一家公司,曾经因为中间 CA 的私钥被泄露,整个中间 CA 证书都被吊销了,好在根 CA 没事,重新签发了一套中间证书就搞定了。
CA 的操作主要分几个阶段:证书申请、身份验证、证书签发、证书分发、证书续期、证书吊销。每个阶段都有对应的日志,这些日志就是我们后面要做 ELK 监控的核心数据来源。
1.4 一张图看懂 PKI 核心架构
下面这张图是我自己总结的 PKI 核心流程。从用户开始,到 RA 验证,再到 CA 签发,最后把证书投入使用。整个流程就是一条信任链:
这个流程里,每一步都会产生日志:用户申请有申请日志,RA 验证有审核日志,CA 签发有签发日志,证书库更新有同步日志。嗯,这些日志就是我们后面做 ELK 监控的原材料。你想,如果有人在 CA 上签了一个不该签的证书,而没有日志记录,那会是什么后果?
好了,这一章我们聊了 PKI 的核心概念。公钥基础设施是一个体系,数字证书是这个体系里的身份证,CA 是签发身份证的机构。三者的关系,其实就是「体系 - 凭证 - 颁发」的三角关系。明白了这些,后续搭建日志监控的时候,你才能知道哪些日志是关键的,哪些日志可以忽略。