K3s 默认自签 CA 到期前如何用 rotate-default-ca-certs.sh 轮换集群 CA 证书

发布时间:2026/11/12 4:12:43

K3s 默认自签 CA 到期前如何用 rotate-default-ca-certs.sh 轮换集群 CA 证书 K3s 默认自签 CA 到期前如何用 rotate-default-ca-certs.sh 轮换集群 CA 证书【免费下载链接】k3sLightweight Kubernetes项目地址: https://gitcode.com/GitHub_Trending/k3/k3sK3s 在集群首次启动时会自动生成一套自签 CA——Server CA、Client CA、Request Header CA、etcd Peer CA、etcd Client CA外加 ServiceAccount Token 签名密钥。这些 CA 证书有效期为 3650 天约 10 年且不会自动续期一旦任何一张 CA 过期由它签发的证书都会失效导致集群大范围故障。这篇文章给出在默认自签 CA 到期前完成轮换的完整路径用仓库提供的示例脚本 rotate-default-ca-certs.sh 生成新的交叉签名 CA 证书再用k3s certificate rotate-ca写入集群数据。需要说明的前提这是针对首次启动时自动生成自签 CA的集群的轮换流程。按 ca-cert-rotation ADR 的定义它属于“disruptive有中断”的更新——必须在重启服务前修改节点的 CLI flag、配置文件或环境变量主要是 token且配置应用到所有节点的过程中集群节点可能因暂时不共享同一信任根而出现短暂不可用。轮换前确认 CA 证书的到期状态先运行证书检查命令确认当前 CA 还剩多久到期k3s certificate check该命令输出每个证书文件的文件名、Subject、用途、过期时间和状态状态取值为OK、WARNING、EXPIRED或NOT YET VALID也可以用-o table、-o json、-o yaml切换输出格式。对比轮换前后的 CA 到期时间、以及轮换后各证书状态回到OK是本文验证步骤的核心手段。作为对照叶子证书客户端/服务端证书有效期为 365 天会在 K3s 启动时若距过期不足 90 天自动续期不需要手动处理需要人工介入的只有 CA。准备条件在运行 k3s server 的节点上操作。脚本默认数据目录DATA_DIR/var/lib/rancher/k3s如果你的 k3s 使用了-data-dir指定其他目录运行时通过环境变量DATA_DIR覆盖。节点上需要有带椭圆曲线ecparam支持的 openssl。脚本启动时会自检缺失时报错openssl not found or missing Elliptic Curve (ecparam) support.并退出如果系统里有openssl-3命令会优先使用它。脚本会检查数据目录下 5 个 CA 证书文件是否存在client-ca.crt、server-ca.crt、request-header-ca.crt、etcd/peer-ca.crt、etcd/server-ca.crt位于${DATA_DIR}/server/tls/。任何一个缺失都会输出Current type CA cert does not exist; cannot continue并退出。脚本的副作用范围在${DATA_DIR}/server/rotate-ca下创建新的证书和密钥文件以及一个脚本退出时自动清理的临时.ca工作目录。它不会修改数据目录中已有的证书是否生效取决于后续rotate-ca步骤。把脚本从 k3s 源码树中取出放到 server 节点上仓库内路径为 contrib/util/rotate-default-ca-certs.sh例如放到节点上的/tmp与 e2e 测试中的用法一致。步骤一生成新的交叉签名 CA执行脚本使用默认数据目录时直接运行即可数据目录不同则加DATA_DIRbash /tmp/rotate-default-ca-certs.sh# 数据目录不是 /var/lib/rancher/k3s 时 DATA_DIR/你的k3s数据目录 bash /tmp/rotate-default-ca-certs.sh脚本对每种 CA 类型执行三步生成新的自签根 CA有效期 7300 天、用当前旧根 CA 对新根做交叉签名、再由新根签发新的叶子 CA。最终生成的 CA bundle 会依次包含新叶子 CA、新自签根、交叉签名根、旧根。保留旧根意味着已签发的现有证书在原始根 CA 过期之前仍然被信任这是交叉签名流程的核心目的。脚本还会生成新的 ServiceAccount 签名密钥一个新的 RSA 2048 密钥加上旧service.key的内容。服务端写入时会校验新密钥 bundle 中仍包含当前生效的签名密钥旧 token 的验签不受影响。脚本正常结束后会打印类似如下内容文档示例具体哈希值以你的集群为准Cross-signed CA certs and keys now available in /var/lib/rancher/k3s/server/rotate-ca Updated server token: K10新server-ca哈希::原token第二部分 Updated agent token: K10新server-ca哈希::原token第二部分 To update certificates, you may now run: k3s certificate rotate-ca --path/var/lib/rancher/k3s/server/rotate-ca这里的更新 token 必须记下来完整K10格式的 token 中包含 Server CA 文件的 SHA256 哈希CA 更换后哈希随之变化旧 token 将不再通过节点加入时的 CA 哈希校验见 ca-cert-rotation ADR 中 “Server CA Pinning” 一节。步骤二把新 CA 写入集群数据按脚本提示执行k3s certificate rotate-ca --path/var/lib/rancher/k3s/server/rotate-ca参数说明--path为必填项指向步骤一生成的目录。命令使用数据目录下的 server token 向 API server 的/v1-k3s/cert/cacerts端点 PUT 新证书--server默认为https://127.0.0.1:6443。服务端写入前会做一致性校验新的叶子 CA 必须能用旧 CA 链验证即共享同一信任根新的 ServiceAccount 签名密钥 bundle 必须包含当前生效密钥。校验失败时命令报错failed to validate new CA certificates and keys并提示see server log for details。如果确实需要在一致性检查失败时强行写入可加--force用法说明为 “Force certificate replacement, even if consistency checks fail”仅在明确理解后果时使用。成功时命令输出certificates saved to datastore同时 server 日志会记录certificate: Cluster Certificate Authority data has been updated, k3s must be restarted.——即证书已落库但节点必须重启才会加载。步骤三更新 agent token 并重启节点把每个 agent 节点使用的 token通过配置文件、环境变量或 CLI flag 提供的那份更新为脚本输出的 “Updated agent token”。这是 disruptive 更新要求的配置变更必须在重启服务之前完成。重启所有 k3s server 节点再重启 agent 节点。集成测试与 e2e 测试均采用“先停 server、再启动、随后重启其余节点”的顺序见 cacertrotation 集成测试 和 rotateca e2e 测试。重启窗口内集群可能出现短暂不可用属于该流程的预期现象不是故障。验证轮换结果检查 CA 到期时间是否更新。在 server 节点上运行k3s certificate check确认 CA 证书条目显示新的过期时间、状态为OK。确认 CA 文件确实被替换。集成测试的做法是轮换前后各取一次哈希并比较md5sum /var/lib/rancher/k3s/server/tls/client-ca.crt md5sum /var/lib/rancher/k3s/server/tls/serving-kube-apiserver.crt测试断言轮换并重启 server 后client-ca.crtCA 被替换和serving-kube-apiserver.crt用新 CA 链重新签发的哈希都与轮换前不同。确认集群功能恢复各节点进入 Ready 状态、kube-system命名空间中的 Pod 全部 running。这是 e2e 测试在重启 server 和 agent 之后的验证方式。限制与注意该流程只适用于默认自签 CA 的集群。如果集群启动时使用了外部 CA 签发的用户自定义证书非中断式更新只需重启服务、无需改节点配置即可仓库另提供了 generate-custom-ca-certs.sh 作为对应工具。步骤一脚本要求 5 张 CA 证书齐全任何一张缺失都会直接终止不会做部分轮换。新 CA bundle 中包含旧根现有证书的可信状态延续到旧根过期为止不要手动编辑server/rotate-ca目录下的文件后再执行rotate-ca否则可能触发一致性校验失败。更多背景hash 钉扎、bootstrap 数据不可重写等问题可参考 docs/adrs/ca-cert-rotation.md证书到期检查机制参考 docs/adrs/cert-expiry-checks.md。【免费下载链接】k3sLightweight Kubernetes项目地址: https://gitcode.com/GitHub_Trending/k3/k3s创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/11/11 18:00:07

@mantine/dates 日期组件样式错乱怎么解决

mantine/dates 日期组件样式错乱怎么解决 【免费下载链接】mantine A fully featured React components library 项目地址: https://gitcode.com/GitHub_Trending/ma/mantine 在 Mantine 项目里使用 mantine/dates 的日历和日期选择器时,如果组件看起来"…

2026/11/12 4:09:19

遂宁电工证哪里可以办多少钱都别怕学历不高也能报

遂宁电工证哪里可以办多少钱都别怕学历不高也能报 学历不高怕报不上名?别急,电工证其实没你想的那么难!今天咱们就聊聊【遂宁电工证哪里可以办】,顺便说说多少钱、怎么选机构,还有你关心的电子证书怎么查,统统给你安排上。 电工证到底值不值得考?…

2026/11/12 4:09:19

新乡长垣电工证多久拿证外省证能转吗

新乡长垣电工证多久拿证外省证能转吗 之前考的证在外省能不能转过来?这个问题,很多在河南长垣的电工朋友都问过,其实答案是 可以转 ,但需要走正规流程,特别是涉及到 新乡长垣电工证 的 多久拿证 问题,很多人还不太清楚,下面我们一步步说清楚。…

2026/11/12 4:09:18

高级电工证什么时候发报名费多少钱

南阳电工证什么时候发?真实经历告诉你怎么避坑 刚出校门就听说电工证是找工作门槛,结果到手才发现, 高级电工证什么时候发 这个问题,直接卡住了我的入职流程。那会儿我在南阳一家市政工程公司做实习,眼看项目就要开工,偏偏电工证没下来,项目经理当场…

2026/11/12 4:09:18

遂宁电工证哪里可以办 怎么报名不被坑

遂宁电工证哪里可以办 怎么报名不被坑 不知道去哪报名怕被中介坑,你不是一个人。最近我帮朋友代办电工证,结果被几个培训机构坑了,交了钱连培训都没上。这年头, 遂宁电工证哪里可以办…

2026/11/12 4:09:18

姑苏考电工证费用多少 官方报名入口怎么找

姑苏考电工证费用多少 官方报名入口怎么找 学历不高怕报不上名?其实电工证的报考门槛并不高,只要年满18周岁,具备初中及以上学历,身体健康,通过正规渠道报名就可以。尤其是现在国家对安全生产和职业资格认证越来越重视, 电工证…

2026/11/12 4:04:18

电力电缆作业证含金量到底值不值?真实经历告诉你答案

电力电缆作业证含金量到底值不值?真实经历告诉你答案 怕考不过白交培训费?这年头,特种作业证成了不少工友的“刚需”,尤其是电力电缆作业证,含金量到底高不高?其实,这事儿我身边很多人都问过,今天就从咱平顶山市政公用工程从业者的角度,聊聊电力电缆…

2026/11/11 12:42:59

电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。…

2026/11/12 0:04:01

工地太忙根本没时间复习考试?学习电工证到哪里学通过率揭秘

工地太忙根本没时间复习考试?学习电工证到哪里学通过率揭秘 工地太忙根本没时间复习考试?你不是一个人。作为一名在南阳卧龙区干了七八年市政公用工程的电工,我深知这个问题的现实性。电工证不仅是工作的“入场券”,更是职业发展的“通行证”,但备考过程…

2026/11/12 0:04:01

双流电工证考别怕挂科!郑州报考避坑指南全攻略

双流电工证考别怕挂科!郑州报考避坑指南全攻略 实操考试心里没底怕挂科?双流电工证考在郑州报名,很多人因为不了解流程、准备不充分,白白浪费时间和金钱。作为三门峡应届工程类毕业生,我也曾经历过这样的焦虑。今天就从零开始,手把手教你如何避开郑州报…

2026/11/12 0:04:01

之前考的证在外省能不能转过来 怎么报名考电工证培训价格多少

之前考的证在外省能不能转过来 怎么报名考电工证培训价格多少 之前考的证在外省能不能转过来?这个问题确实让不少准备换城市工作的朋友犯了难,尤其像电工证这种实操性很强的证书,很多人担心跨省后证书能不能继续用。其实,只要符合相关流程,是可以顺利转…

2026/11/11 20:27:01

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/10 10:29:37

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑