当代码签名证书过期时,您无法签署新软件旧的、以前签名过的软件可能会失去用户信任并触发安全警告(例如Windows SmartScreen)。
1.检查您的代码是否带有时间戳
如果带有时间戳:即使证书过期,您之前签名的应用程序仍会被操作系统信任。您无需重新签名现有的二进制文件。
如果签名未添加时间戳:尝试安装您之前签名软件的用户将收到安全警告。您需要重新签名这些应用程序。
2.购买并注册新证书
您无法“续订”已过期的证书:证书一旦过期,就无法用于对续订请求进行加密签名。您必须向新订单一样,完成标准的注册流程。
将您的请求提交给证书颁发机构(CA),例如Gworg。
您需要准备安全存储设备(例如CA提供的USB令牌或您自己的硬件安全模块)。
3.重新签署您的软件并通知用户
新证书颁发并安装后,请对所有新更新进行签名,并重新签名任何之前已签名但未添加时间戳的软件。
签名时,务必使用您的证书颁发机构的时间戳服务。
向用户发布更新通知。在新的证书建立信誉之前,他们可能会暂时看到SmartScreen警告。
4.实施最佳实践以防止未来停机
始终添加时间戳:确保您的构建和部署管道配置为在签名过程中使用时间戳服务器。
自动续期:使用API或ACME等协议将证书颁发和轮换集成到您的构建管道中。
考虑封闭环境替代方案:如果您仅在内部局域网上分发软件,请考虑建立一个可运行5至10年的自管理证书颁发机构(CA),此方式不适合公共网络状态。