惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Attack and Defense Labs
Attack and Defense Labs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The Last Watchdog
The Last Watchdog
B
Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Google DeepMind News
Google DeepMind News
The GitHub Blog
The GitHub Blog
博客园_首页
N
News and Events Feed by Topic
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Security Archives - TechRepublic
Security Archives - TechRepublic
Y
Y Combinator Blog
Vercel News
Vercel News
T
Troy Hunt's Blog
L
LINUX DO - 最新话题
H
Hacker News: Front Page
云风的 BLOG
云风的 BLOG
Hugging Face - Blog
Hugging Face - Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
aimingoo的专栏
aimingoo的专栏
Recorded Future
Recorded Future
Jina AI
Jina AI
人人都是产品经理
人人都是产品经理
Microsoft Azure Blog
Microsoft Azure Blog
Last Week in AI
Last Week in AI
T
The Exploit Database - CXSecurity.com
T
The Blog of Author Tim Ferriss
S
Schneier on Security
Project Zero
Project Zero
MyScale Blog
MyScale Blog
博客园 - 聂微东
F
Fortinet All Blogs
AWS News Blog
AWS News Blog
W
WeLiveSecurity
L
LangChain Blog
N
Netflix TechBlog - Medium
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tailwind CSS Blog
Scott Helme
Scott Helme
S
Secure Thoughts
A
Arctic Wolf
The Register - Security
The Register - Security
C
Check Point Blog
Security Latest
Security Latest
O
OpenAI News
S
Securelist
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Blog — PlanetScale
Blog — PlanetScale
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events

博客园 - 散尽浮华

Rancher部署并导入K8S集群 K8S集群灾备环境部署 K8S容器环境下GitLab-CI和GItLab Runner 部署记录 K8S持久化存储PV、PVC笔记 K8S部署ES集群 - 运维笔记 容器和镜像转化、迁移方式 - 运维小结 K8S部署RabbitMQ集群 (镜像模式) - 部署笔记 Pod滚动重启方法 - 运维笔记 Node节点禁止调度(平滑维护)方式- cordon,drain,delete K8S中NodePort端口范围修改 Centos7.4升级到Centos7.7 K8S部署Redis Cluster集群(三主三从模式) - 部署笔记 K8S部署Nacos集群 - 部署笔记 K8S部署Kafka界面管理工具(kafkamanager) K8S部署Kafka集群 - 部署笔记 K8S部署RocketMQ集群(双主双从+同步模式) - 部署笔记 Nginx流量拷贝 - 运维笔记 Nginx基于站点目录和文件的URL访问控制 - 配置笔记 Nginx禁止ip访问或非法域名访问 - 配置笔记
Rancher 证书到期问题处理手册
散尽浮华 · 2026-02-06 · via 博客园 - 散尽浮华

一、问题现象
登录测试环境Rancher控制台https://172.19.120.11(docker run方式部署的单节点rancher),报错x509:certificate has expired or is not yet valid。这个错误表明Rancher容器无法连接到Kubernetes API Server(6443端口),证书验证失败。

1

二、问题排查
【1】 查看Rancher容器日志:

 2

【2】登录Rancher容器内部,查看证书有效期到2026年2月5号(已到期):

 3

【3】此时尝试重启Rancher容器,发现重启后Rancher控制台https://172.19.120.11 已根本无法访问。宿主机映射端口80和443已监听,但是网络上到这两个端口已不通。

4

三、问题原因
Rancher Server内置了一个K3S集群作为Local集群,也就是说Rancher容器里其实已经内置了一个K8S用来支撑Rancher的运行。

  • Rancher Server 作为内置 K3S 集群的一个“客户端”,其启动时需从该 K3S集群的 API Server 获取一个有效的客户端证书,以便后续所有通信都是被授权和加密的。
  • 内置的 K3S 证书有效期默认是1年。如果证书已经过期或剩余时间不足90天,K3S 会自动重启并轮换证书。
  • 但是在 K3S V1.19.1之前版本中,由于BUG(https://github.com/k3s-io/k3s/issues/1621)导致K3S无法自动轮转证书!
  • 当前我们测试环境Rancher版本是V2.4.8,内置的K3S版本是V1.17.2(k3s --version查看),该版本Bug导致其即便在重启时也无法自动轮转已过期的证书。
  • 【Rancher在V2.5.8后续版本中,通过将内置 K3S 升级到 V1.20+ 修复了此问题。】

问题总结:K3S 因为自身Bug导致证书轮转失败时,会产生两个致命问题:

  • K3S API Server 自身证书过期:这会导致Rancher根本无法与其建立信任连接(握手失败)。
  • K3s 无法为Rancher签发新的客户端证书:即使API Server证书有效,但如果其CA(证书颁发机构) 证书也因轮转失败而过期,那么它就没有资格再签发任何新证书。Rancher 持有过期的旧客户端证书来访问 API,会立刻被拒绝。

四、问题处理
登录Rancher容器内,此时由于证书过期,在Rancher容器内部已无法执行kubectl命令!

5

解决办法:在执行kubetl命令时带上--insecure-skip-tls-verify,作用是让 kubectl 跳过对 API Server 服务器证书的验证,它直接忽略了当前存在的证书过期错误,使命令可以强制执行

【1】步骤1:删除k3s-serving、tls-rancher 证书

k3s-serving 是 K3S API Server 的服务端证书;tls-rancher 是 Rancher Web UI 的服务端证书。删除这两个证书后,重启 Rancher 会触发 K3s 自动重新生成它们。

6

【2】步骤2:删除dynamic-cert.json文件

dynamic-cert.json 是 K3S记录当前动态证书信息的文件。删除它等于重置证书状态,强制 K3S 在下文启动时重新走完整的签发流程。删除后,重启 Rancher 会由 K3S 自动重新生成。可以通过这个文件里的tls.crt证书内容查出有效期!

7

【3】步骤3:重启Rancher服务

重启 Rancher 容器会同步重启其内置的 K3s 服务。K3S 服务在启动时,如果发现核心证书文件缺失,便会触发内置的证书轮转或生成逻辑,从而制造出新的有效证书。

8

【4】步骤4:将rancher ip重新注入到证书内

此操作是为了访问 Rancher API,触发 Rancher Server 完成启动后的自检和配置加载,确保它感知到新的证书并使用正确的主机名(IP)进行注册,相当于“激活”新证书

9

此时,再次查看Rancher证书有效期已经更新:

10

【5】步骤5:最后强制重启cattle-cluster-agent服务

前面四个步骤完成后,登录测试环境Rancher控制台https://172.19.120.11,发现无法与被管理的Kubernetes 集群 API Server 建立有效通信:

11

此时,需要强制重启cattle-cluster-agent服务cattle-cluster-agent 是 Rancher 部署在 被管理的Kubernetes 集群中的代理,负责在 Rancher Server 与被管理的Kubernetes集群之间建立双向通信,同步状态和执行命令

12

到这里,测试环境Rancher 证书到期问题已修复,登录Rancher控制台https://172.19.120.11 可以正常使用了。

整个修复流程的核心逻辑:

  • 通过删除 K3S 的旧证书和状态文件并重启 Rancher,人为地触发其内置 K3S 组件的证书再生机制,从而修复因证书过期或 Bug 导致的有效性中断问题。
  • 最后,通过强制重启 cattle-cluster-agent Pod,使集群代理加载并使用新的认证证书,恢复与 Rancher Server 的正常通信链路。