Rancher UI无法访问 x509: certificate has expired or is not yet valid

Rancher UI管理页面无法使用

如果证书已过期,Rancher 可视化UI管理页面将无法使用。
具体原因可通过docker logs命令查看rancher容器日志,若发现一直报 x509: certificate has expired or is not yet valid的错误,很明显是证书过期了。
在这里插入图片描述

1、结合对应版本执行以下命令:
  • 2.0 或 2.1 版本
docker exec -ti <rancher_server_id> mv /var/lib/rancher/management-state/certs/bundle.json /var/lib/rancher/management-state/certs/bundle.json-bak
  • 2.2 +
docker exec -ti <rancher_server_id> mv /var/lib/rancher/management-state/tls/localhost.crt /var/lib/rancher/management-state/tls/localhost.crt-bak
  • 2.3 +
docker exec -ti <rancher_server_id> mv /var/lib/rancher/k3s/server/tls /var/lib/rancher/k3s/server/tlsbak
# 执行两侧,第一次用于申请证书,第二次用于加载证书并启动
docker restart <rancher_serve
Rancher 中遇到 `x509: certificate signed by unknown authority` 错误通常表示 Rancher 或其代理组件无法验证目标服务器的 TLS 证书。这种情况常见于使用自签名证书或私有 CA 签发的证书时。 以下是一些可能的解决方案,具体取决于问题发生的场景: ### 1. 将自签名证书添加到信任链 如果 Rancher 需要连接的服务(如 Kubernetes 集群、镜像仓库 Harbor 等)使用的是自签名证书,则需要将该证书导入到 Rancher 所在节点的操作系统信任库中。 ```bash # 假设证书文件为 /etc/kubernetes/ssl/cert.pem cp cert.pem /etc/pki/ca-trust/source/anchors/ update-ca-trust ``` 在 Docker 容器环境中运行的 Rancher 可能也需要更新其容器内的证书信任库[^3]。 ### 2. 在 Rancher 启动参数中指定额外的 CA 证书 Rancher 支持通过配置项将额外的 CA 证书注入到其信任链中。可以在部署 Rancher 时通过 Helm Chart 的 `additionalTrustedCAs` 参数启用此功能,并挂载相应的证书文件。 Helm 安装示例: ```yaml # values.yaml additionalTrustedCAs: true privateCA: | -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----- ``` 然后执行安装命令: ```bash helm install rancher rancher-stable/rancher --namespace cattle-system --create-namespace -f values.yaml ``` ### 3. 检查 Rancher Agent 的证书信任 如果问题是出现在 Rancher agent 组件与 Rancher server 之间的通信中,可以尝试重新注册集群并确保 agent 容器信任相关证书。这可以通过在集群注册时手动注入证书或使用 Rancher 提供的注册脚本进行调整实现[^4]。 ### 4. 使用 Ingress 配置 TLS 证书 如果 Rancher 是通过 Ingress 对外暴露服务,则需确保 Ingress 控制器配置了正确的 TLS 证书。否则客户端(如浏览器或 kubectl)可能会因证书不被信任而拒绝连接。 Nginx Ingress 示例配置: ```yaml apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: rancher-ingress namespace: cattle-system spec: tls: - hosts: - rancher.example.com secretName: tls-rancher-ingress rules: - host: rancher.example.com http: paths: - path: / pathType: Prefix backend: service: name: rancher port: number: 443 ``` ### 5. 调整 Rancher 的代理设置(如适用) 在某些企业网络环境中,所有出站请求必须经过代理。此时应正确配置 Rancher 的代理环境变量(HTTP_PROXY、HTTPS_PROXY 和 NO_PROXY),以避免因中间拦截导致的证书验证失败问题。 Docker 启动示例: ```bash docker run --privileged -d --restart=unless-stopped \ -e HTTP_PROXY="http://proxy.example.com:3128" \ -e HTTPS_PROXY="http://proxy.example.com:3128" \ -e NO_PROXY="localhost,127.0.0.1,.example.com" \ rancher/rancher:latest ``` ### 6. 更新 Rancher 与 Kubernetes 版本 有时证书问题可能是由于软件版本过旧导致的兼容性问题。建议升级至最新稳定版本,以获得更好的安全性和兼容性支持[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值