K3S 证书有效期和续签问题

本文使用k3s版本:k3s version v1.24.17+k3s1 (026bb0ec)
默认安装情况下,ca证书有效期是10年,普通证书有效期是1年。

普通证书

k3s官网描述:K3s 客户端和服务器证书自颁发日起 365 天内有效。每次启动 K3s 时,已过期或 90 天内过期的证书都会自动更新。
但是:90天内过期的证书可以通过重启k3s没问题,已过期不行,所以已过期的需要手动处理。

# 已过期的错误
Unable to connect to the server: tls: failed to verify certificate: x509: certificate has expired or is not yet valid: current time 2027-05-18T15:17:59+08:00 is after 2027-04-18T07:18:33Z

续签

# 停止 K3s
systemctl stop k3s

# 轮换证书
k3s certificate rotate

# 启动 K3s
systemctl start k3s

# 删除secret k3s-serving
kubectl --insecure-skip-tls-verify -n kube-system delete secrets k3s-serving

# 删除系统中的文件dynamic-cert.json
rm -f /var/lib/rancher/k3s/server/tls/dynamic-cert.json

# 重启 K3s
systemctl restart k3s

100年过期

vim /etc/systemd/system/k3s.service


[Service]
Type=notify
Environment="CATTLE_NEW_SIGNED_CERT_EXPIRATION_DAYS=36500" # 增加环境变量
EnvironmentFile=-/etc/default/%N
EnvironmentFile=-/etc/sysconfig/%N
EnvironmentFile=-/etc/systemd/system/k3s.service.env

CA证书

续签

实测官方文章续签方法只能在证书有效期内正常续签。

100年过期

首先使用脚本生成ca证书(改成相对应的时间),放置在指定位置(/var/lib/rancher/k3s/server/tls),然后在安装k3s。

相关调试命令

查看证书内容,可以看到证书时间

# server
for i in `ls /var/lib/rancher/k3s/server/tls/*.crt`; do echo $i; openssl x509 -enddate -noout -in $i; done
# agent
for i in `ls /var/lib/rancher/k3s/agent/*.crt`; do echo $i; openssl x509 -enddate -noout -in $i; done

修改宿主机时间

sudo date --set="2025-07-18 19:17:41"

参考资料

  • https://docs.k3s.io/zh/cli/certificate

另外关于k8s证书相关推荐文章

  • https://www.cnblogs.com/orchidzjl/p/17306985.html
  • https://www.zhaohuabing.com/post/2020-03-19-pki/
  • https://www.zhaohuabing.com/post/2020-05-19-k8s-certificate/
  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值