SenderGuard
SenderGuard

DKIM 选择器轮换 SOP(零停机)

目标:在不中断签名的情况下,完成密钥与选择器的平滑切换。关键点:先 DNS、再签名、后回收,每一步都“体检 + 证据”。以下流程适用于自建 MTA 与主流 ESP(Mailgun、SendGrid、Amazon SES 等)。

每步验证

执行每一步后,立即体检并生成 PDF,记录 scanId/sha256 与 Verify 链接。

一、准备与命名规范

  • 生成新密钥与选择器名,例如 selector2025q1;密钥长度 ≥ 2048。
  • 规划时间窗与灰度节奏;定义回退条件与联系人。
  • 准备脚本:openssl、DNS CLI、配置变更与回滚脚本。
# 生成新密钥(示例)
openssl genrsa -out dkim-2025q1.key 2048
# 导出公钥并写入 DNS TXT(selector._domainkey.example.com)
# s=、t= 标志按产品要求设置,p= 公钥内容

二、发布新选择器(仅新增)

在 DNS 中发布 selector._domainkey.example.com 的 TXT 记录,包含 p= 公钥,必要时设置 s=t= 标志。使用 较短的 TTL 便于灰度期间快速回收。发布后,使用读取工具与 /audit 验证可见性与格式。

三、切换签名(10–20% 灰度)

在 MTA/ESP 中把签名选择器从旧值切到新值。建议先引导 10–20% 的真实流量,观察 24–48 小时。重点指标:AR 中的 dkim=pass 比例、DMARC 对齐、投诉与退订可用性。

四、全量切换与证据留存

灰度稳定后按批次推进全量,在每个批次结束时生成 PDF 证据并记录变更单。证据中包含 scanId/sha256 与 Verify 链接,便于外部稽核。

步骤关键检查失败回滚
发布新选择器TXT 无截断;包含 p= 公钥;TTL 合理保持旧选择器不动;仅新增
切换签名(灰度)AR 中 dkim=pass 稳定;complaint 无上升切回旧选择器;保留新选择器 DNS
全量切换批次推进;生成 PDF 证据若失败恢复灰度或回退
回收旧选择器延迟 7–14 天回收若发现历史邮件验证依赖,延后回收

五、回收旧选择器与延迟策略

为避免历史邮件在收件端再次验证失败,推荐在全量后 延迟 7–14 天 再移除旧选择器。若你的邮件生命周期更长,可适度延长。

六、回滚与复盘

如果灰度期间 dkim=pass 明显下降或投诉率上升,立刻回退到旧选择器,保留新选择器 DNS 以便再次尝试。复盘常见原因:DNS 传播不完全、MTA 缓存未刷新、TXT 被截断、选择器名称与配置不一致。

七、延伸阅读