突破 K3s CA 证书10 年有效期的限制

是的,都得重启

CA 证书有效期10 年呢

好的,
还有个问题大佬
如果希望从外界访问k3s api接口,它需要双向认证么
因为我现在希望将k3s server节点放在腾讯云的loadbalence后面, 然后agent节点使用lb地址去访问server
但是loadbalence需要配置证书,我随便签了个自建证书, 似乎是不行

你可以用 4 层啊,这样就不用证书了

自建证书那个是我的问题, 感谢

我使用k3s安装高可用rancher,像上面说的设置了时间为2035,证书过期后k3s/rancher无法访问。之后我使用systemctl restart k3s,发现并没有自动轮换 K3s 证书,证书过期日期还是之前的。
kubectl连不上k3s集群,报下面错误。

文章说了, 仅延长了CA 证书的有效期, 而客户端证书还需要在不足90天的时候进行重启k3s

如何监控k3s集群证书过期?

@ksd 正式运行环境能用新生成100年CA证书替换现有环境证书吗?

我看GitHub上这个帖子说这个功能还没有实现,现在正式环境能使用您上面方法吗?

生产环境不推荐

我看有人通过修改系统时间,导致所有证书都能够重新生成过期时间,这种方式也只是测试吧?
生产环境,我想改成100年,怎么弄?

1、网络有文档通过修改系统时间+100年,导致所有证书都能够重新生成过期时间,这种方式也只是测试吧?
2、生产环境,我想改成100年,怎么弄?我集群外使用kubectl的kubeconfig是master节点~/.kube/config文件,如果集群证书过期自动轮转了,我还得从master节点下载,比较不方便

为什么只考虑方便,不考虑安全性呢?非得逆道而行

@ksd CA证书10年过期后重启会自动轮换吗?

考虑的有点远了,肯定不会因为 CA 证书影响你的集群运行的。

如果担心 CA 证书过期,可以参考 K3s 官网去轮换 CA 证书:

多谢,我用的1.19版本的,应该不支持

您好,您这种方法在v1.27.1版本中,可以设置证书的有效期为100年。但是如果我把系统时间调整为过去时间,即使仍然在有效期之内,但是查看K3S的日志,仍然会提示证书失效的问题。

k3s 依赖 dynamiclistener 库来生成证书,改了一个版本来支持自定义 CA 和 客户端证书,可以下载对应的 branch 后,重新编译一下 k3s 就可以在启动时通过两个环境变量来设置证书有效期:
CATTLE_NEW_SIGNED_CA_EXPIRATION_YEARS 设置 CA 证书有效期,单位年,默认100年
CATTLE_NEW_SIGNED_CERT_EXPIRATION_DAYS 设置 Client 证书有效期,单位天,默认 365 天(1年)。

相关改动可参考:
修改 k3s 证书有效期时间

最新 v1.29.0+k3s1