You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes集群ArgoCD证书过期续期后仍显示旧有效期问题求助

ArgoCD手动更新TLS证书后不生效排查方案
  • 验证secret证书有效性
    执行以下命令直接读取集群内存储的证书有效期,确认你上传的证书本身是新续期的版本:
    kubectl get secret argocd-server-tls -n argocd -o jsonpath='{.data.tls\.crt}' | base64 -d | openssl x509 -noout -dates
    
    如果输出的有效期仍为旧证书时间,说明你创建secret时使用的cert.pem/key.pem文件有误,重新导出正确的证书文件后重建secret即可。
  • 检查访问链路证书逻辑
    如果ArgoCD前端配置了Ingress、Istio网关或其他反向代理,用户访问时拿到的证书实际是代理层配置的,而非ArgoCD Server本身的证书。可通过端口转发直接访问集群内的ArgoCD服务验证:
    kubectl port-forward svc/argocd-server -n argocd 8443:443
    
    本地访问https://localhost:8443查看证书有效期,若此处显示为新证书,只需同步更新前端代理层的TLS配置即可。
  • 核对ArgoCD Server启动参数
    若之前自定义过ArgoCD Server的启动参数指定了证书路径,将不会读取默认的argocd-server-tls secret:
    kubectl get deployment argocd-server -n argocd -o yaml | grep -i tls
    
    检查输出是否包含--tls-cert-file、--tls-key-file参数指向其他挂载路径,如有则更新对应路径的证书文件,或删除自定义参数恢复默认读取逻辑。
  • 排除客户端缓存干扰
    浏览器会缓存旧证书信息,可使用无痕模式访问,或通过curl命令直接查询服务端返回的证书有效期,避免本地缓存误导判断:
    curl -vk https://<你的ArgoCD访问域名>
    
  • 检查secret是否被其他控制器覆写
    若集群部署了cert-manager,且为argocd-server-tls配置了对应的Certificate资源,手动修改的secret会被cert-manager自动回滚。执行以下命令确认是否存在自动管理的证书资源:
    kubectl get certificate -n argocd
    
    如有对应argocd-server-tls的Certificate资源,更新该资源触发重新签发新证书即可,无需手动修改secret。

内容的提问来源于stack exchange,提问作者Nitish Kumar Vullolla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 10:45:01