代码签名证书有效期相关说明(JoySSL 举例)
1、证书本体有效期
- OV、EV 代码签名证书,单张证书最长有效期 1 年(12 个月) ,无法购买 2‑3 年长周期证书。
行业规则:CA 机构不再签发超过 12 个月的代码签名证书,到期必须重新申请、重新审核,不能直接续期复用旧证书。
⚠️注意:续费不等于自动延期,续费是重新签发一张全新证书,私钥、证书序列号全部变更。
2、签名后软件的有效期(时间戳的核心作用)
这是绝大多数开发者踩坑点,证书过期 ≠ 已经签名的程序立刻失效,决定权在「时间戳」。
①签名时添加了 RFC3161 时间戳(推荐必做)
即使代码签名证书本身到期、被吊销,过去已经签名的 exe、msi、驱动文件,签名依旧保持有效,Windows 不会报未知发布者警告。
时间戳相当于给代码打上可信公证时间:证明 “在证书还没过期的时候,就已经完成签名”。
②签名没有加时间戳(高危)
证书一旦到期,所有历史已签名软件全部变为未签名状态,Windows 弹出未知发布者警告,软件分发直接受影响。
✅实操铁律:不管 OV 还是 EV,每一次签名,务必带上时间戳服务。
3、吊销后的影响(和过期不一样)
如果私钥泄露、企业信息变更,CA 主动吊销证书:
无论有没有打时间戳,所有使用这张证书签名的程序全部失效告警。 所以 EV 的 U‑Key 硬件、OV 私钥 / 云签权限一定要妥善保管。
4、和 SSL 证书简单对比
表格
| 项目 | 代码签名证书 | SSL 网站证书 |
|---|---|---|
| 单张最大有效期 | 12 个月 | 13 个月 |
| 到期处理 | 重新审核、重新签发 | 续费重签 |
| 过期后老文件 | 依赖时间戳 | 直接全部失效 |
5、实操建议
- 建议提前 30 天申请新代码签名证书,预留企业审核、硬件 U‑Key 邮寄时间,避免新版本软件无证书可用。
- 旧证书到期前,历史已发布版本依靠时间戳保护,不需要重新全部签名旧包;新版本软件必须使用新证书签名。
- EV 证书,新证书下发后,需要使用新 U‑Key 进行签名,旧 U‑Key 随之作废。