首页 > 其他分享 >rancher-webhook x509: certificate has expired or is not yet valid 操作解决

rancher-webhook x509: certificate has expired or is not yet valid 操作解决

时间:2022-08-20 14:57:51浏览次数:134  
标签:tls certificate crt x509 webhook cattle rancher new

1、问题原因,在rancher上的一个集群上添加用户失败,错误码:

错误码
Internal error occurred: failed calling webhook "rancherauth.cattle.io": Post "https://rancher-webhook.cattle-system.svc:443/v1/webhook/validation?timeout=10s": x509: certificate has expired or is not yet valid: current time 2022-08-19T07:12:55Z is after 2022-08-18T03:27:29Z
2、显示证书过期,进入rancher进行排查

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

K8S各个组件的证书检查都是未过期的

3、可能是rancher本身的证书过期了
需要管理员身份进入 rancher 的 local - system 查看证书列表 发现有证书过期

操作:
需要进入编辑YAML: cattle-webhook-tls 解密base64并 备份为文件名为 tls.crttls.key

需要进入编辑YAML:cattle-webhook-ca 解密base64并 备份为文件名为 ca.crtca.key

文件放在同一个目录下即可。
查看检查证书详细信息,操作命令 openssl x509 -in tls.crt -noout -text

创建并编辑openssl.cnf文件

cat openssl.cnf
[v3_req]
subjectAltName = @alt_names
 
[alt_names]
DNS = rancher-webhook.cattle-system.svc    # 填写tls.crt详情里面的 DNS 地址(上图DNS)

或 DNS 有多的话
[v3_req]
subjectAltName = @alt_names

[alt_names]
DNS.1 = rancher.webhook                     # 填写tls.crt详情里面的 DNS 地址(上图DNS)
DNS.2 = rancher-webhook.cattle-system.svc   # 填写tls.crt详情里面的 DNS 地址(上图DNS)

4、证书签发
#生成服务端私钥
openssl genrsa -out new.key 2048
#生成证书请求文件
openssl req -new -key new.key -out new.csr

注意:填写之前 tls.crt 文件详情里对应的参数

5、生成最终证书文件,-day指定证书有效期 3650 是十年
openssl x509 -req -days 3650 -sha256 -CA ca.crt -CAkey ca.key -CAcreateserial -extfile openssl.cnf -extensions v3_req -in new.csr -out new.crt

6、最终生成文件 new.keynew.crt
7、将new.keynew.crt文件进入rancher证书列表,升级过期的 cattle-webhook-tls

。。例外-看看secret
kubectl get secret -n cattle-system

标签:tls,certificate,crt,x509,webhook,cattle,rancher,new
From: https://www.cnblogs.com/KennethLin/p/16607693.html

相关文章