2. 证书生命周期总览:从申请到销毁的完整路径、各阶段常见故障概览
设备证书不是一锤子买卖。申请下来装上去就完事?那后面八成要出问题。
我个人习惯把证书的生命周期分成六个阶段:申请→签发→分发→使用→续期→销毁。每个阶段都有它自己的坑。今天咱们就把这条路从头到尾走一遍,看看哪些地方容易翻车。
核心观点: 证书生命周期管理,说白了就是跟时间赛跑。密钥生成、有效期、吊销状态,任何一个环节脱节,设备就断连。
2.1 申请阶段:起点就埋雷
证书申请的第一步是生成密钥对和证书签名请求(CSR)。这一步看着简单,但坑不少。
- 密钥强度不够: 我见过不少设备还在用 1024 位的 RSA 密钥。现在行业底线是 2048 位,有些合规要求已经到 4096 位了。你想想看,密钥太弱,证书签出来也没用。
- CN/SAN 填错: 设备证书的通用名称(CN)或主题备用名称(SAN)必须跟设备实际域名/IP 完全一致。差一个字符,TLS 握手就失败。
- 签名算法不匹配: 有些老旧 CA 只支持 SHA-1,但新设备要求 SHA-256。签出来的证书设备不认。
我的习惯: 生成 CSR 之前,先确认设备支持的密钥类型和签名算法。用 OpenSSL 检查一下配置文件,别凭感觉写。
2.2 签发阶段:CA 那边的幺蛾子
CSR 提交到 CA 之后,CA 会验证身份然后签名。这个阶段的问题通常出在 CA 本身。
| 常见问题 | 现象 | 根因 |
|---|---|---|
| CA 证书过期 | 签发失败,返回“证书无效” | 根 CA 或中间 CA 证书已过期 |
| CRL 分发点不可达 | 客户端验证时报错 | CA 未正确配置 CDP 扩展 |
| 证书策略不匹配 | 设备拒绝加载证书 | CA 签发的策略 OID 设备不识别 |
| 有效期过长 | 合规审计不通过 | 设备证书有效期超过 2 年限制 |
我记得有一次,客户反馈设备连不上服务器。查了半天,发现中间 CA 证书已经过期三个月了,但设备上装的还是旧证书链。嗯,这种问题其实很常见。
2.3 分发阶段:传输和安装的坑
证书签好了,怎么安全地送到设备上?这是个容易被忽视的环节。
- 明文传输: 证书和私钥通过 HTTP 或 FTP 下发,中间被截获。私钥泄露,证书等于白签。
- 格式不兼容: 设备只支持 DER 格式,你给了 PEM。或者设备需要 PKCS#12,你给了单独的证书和密钥文件。
- 安装路径错误: 证书装到了系统信任库,但设备应用只读自己的私有存储。
我曾经踩过的坑: 有一次批量部署 500 台设备,脚本里写死了证书路径。结果设备固件升级后路径变了,所有证书都失效。从那以后,我坚持用相对路径或环境变量。
2.4 使用阶段:运行时才暴露的问题
证书装好了,设备开始通信。这时候问题才真正浮出水面。
最常见的是证书链不完整。设备只带了终端证书,没有中间 CA 证书。客户端验证时找不到信任锚,握手失败。
还有时间不同步的问题。设备系统时间不准,比实际时间快了或慢了几个小时。证书有效期验证直接挂掉。你想想看,设备时间跑偏了,证书再新也没用。
排查要点: 使用阶段遇到 TLS 握手失败,先检查三件事——证书链是否完整、系统时间是否同步、证书是否被吊销。
2.5 续期阶段:最容易遗忘的环节
证书有有效期。到期不续,服务中断。
续期有两种方式:
- 自动续期(ACME 协议): 设备自动向 CA 发起续期请求。优点是省心,缺点是 ACME 客户端需要定期运行。
- 手动续期: 管理员重新生成 CSR,提交 CA 签发。优点是可控,缺点是容易遗忘。
我个人建议,能自动续期就别手动。但自动续期也有坑——如果 ACME 客户端的账户密钥丢了,续期就失败。我曾经遇到过客户把 ACME 密钥存在临时目录里,一重启就没了。
2.6 销毁阶段:善后比想象中重要
设备退役了,证书怎么办?直接扔掉?不行。
销毁阶段要做两件事:
- 吊销证书: 向 CA 提交吊销请求,将证书序列号加入 CRL 或 OCSP 响应。
- 销毁私钥: 安全擦除设备上的私钥文件。简单删除不够,要用工具覆写。
为什么重要?因为被吊销的证书如果还在设备上,攻击者可以冒充这台设备接入网络。我见过一个案例,设备报废后证书没吊销,结果被用来伪造身份访问内部系统。
我的习惯: 设备退役流程里加一道“证书吊销确认”步骤。吊销完成后,用 OCSP 验证一下状态,确保 CRL 已经更新。
2.7 各阶段故障速查表
为了方便排查,我把每个阶段的典型故障整理成了一张表。你可以把它贴在墙上,或者存到知识库里。
| 阶段 | 典型故障 | 排查方向 |
|---|---|---|
| 申请 | CSR 生成失败、密钥强度不足 | 检查 OpenSSL 配置、密钥长度参数 |
| 签发 | CA 拒绝签名、策略不匹配 | 查看 CA 日志、确认证书模板 |
| 分发 | 传输被篡改、格式不兼容 | 使用 HTTPS/SCP 传输、确认格式 |
| 使用 | TLS 握手失败、证书链不完整 | 用 openssl s_client 验证链 |
| 续期 | 自动续期失败、密钥丢失 | 检查 ACME 日志、备份账户密钥 |
| 销毁 | 吊销未同步、私钥残留 | 查询 CRL/OCSP、安全擦除工具 |
好了,证书生命周期总览就到这里。这条路说长不长,说短不短,但每个节点都值得你多看一眼。后面几章我们会逐个阶段深入,把排查方法掰开揉碎了讲。