术语表

密钥轮换 (Key Rotation)

最后核实

定义

密钥轮换是按计划或在安全事件后,用新生成的密钥替换旧密钥,以限制密钥泄露造成损失的做法。

密钥轮换就是停用旧密钥、改用新生成的密钥。对 TLS 服务器来说,通常发生在证书续期时:不再用旧私钥生成新 CSR,而是重新生成一对密钥。Certbot 默认每次续期都会生成新私钥,除非加了 --reuse-key。轮换同样适用于 CA 密钥(随时间换用新的根证书和中间证书),也适用于 Session Ticket 密钥,服务器应频繁更换它,才能保住前向安全。

为什么重要

一把从不更换的密钥会在备份、旧服务器、离职员工的电脑里不断积累暴露面,定期轮换可以限制一次未被发现的泄露能被利用多久。随着证书最长有效期缩短(2026 年 3 月 15 日起 200 天,2029 年 3 月 15 日起 47 天),自动化续期让"每次续期都换密钥"几乎没有额外成本。不过,凡是直接引用密钥的地方都要配合轮换,例如证书固定、DANE 的 TLSA 3 1 1 记录:先发布新密钥的哈希,等缓存过期,再切换。使用云厂商证书服务时,也要确认重新申请时是否生成了新的 CSR 和私钥。

例子

# 提前生成下一把密钥,并在切换前发布它的 TLSA 记录
openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:P-256 -out next.key
openssl pkey -in next.key -pubout -outform DER | openssl sha256
# -> 在现有记录旁新增 "_25._tcp.mail.example.com. IN TLSA 3 1 1 <hash>"

常见误区

  • 续期证书就等于轮换了密钥。 只有重新生成密钥才算,有些工具和很多手工流程会沿用旧密钥。
  • 只有被攻破后才需要轮换。 定期轮换能限制那些你根本没发现的泄露。
  • 轮换密钥必须吊销旧证书。 吊销针对的是密钥泄露;常规轮换后,旧证书可以自然过期。

延伸阅读