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

Kubernetes执行kubectl get certificate报x509未知授权签名错误如何解决

问题原因

这个报错是Kubernetes APIServer无法验证cert-manager转换webhook的服务证书导致,核心问题为webhook CA证书不匹配,常见触发场景如下:

  • cert-manager升级操作后,旧版本转换webhook配置残留的CA根证书,和当前webhook实际加载的CA证书不一致
  • 手动删除过cert-manager-webhook-ca Secret后,新生成的CA没有同步更新到APIService、MutatingWebhookConfiguration、ValidatingWebhookConfiguration资源的CA字段
  • 当前集群中还存在v1alpha2版本的Certificate旧API资源,该API对应cert-manager v0.11及更早版本,若后续升级过cert-manager未同步迁移旧API资源,也会触发转换webhook校验失败
解决方案

通用修复步骤(适配所有cert-manager版本)

  • 第一步:清除残留的webhook配置资源
kubectl delete mutatingwebhookconfiguration cert-manager-webhook
kubectl delete validatingwebhookconfiguration cert-manager-webhook
kubectl delete apiservice v1beta1.webhook.cert-manager.io
  • 第二步:重建webhook CA Secret
    首先备份现有CA Secret,删除后等待cert-manager控制器自动生成新的CA证书:
# 备份现有CA配置
kubectl get secret cert-manager-webhook-ca -n cert-manager -o yaml > webhook-ca-backup.yaml
# 删除旧CA Secret
kubectl delete secret cert-manager-webhook-ca -n cert-manager
  • 第三步:重启cert-manager所有组件,触发CA同步
kubectl rollout restart deployment cert-manager -n cert-manager
kubectl rollout restart deployment cert-manager-webhook -n cert-manager
kubectl rollout restart deployment cert-manager-cainjector -n cert-manager
  • 第四步:验证修复效果
    等待所有Pod恢复Running状态后,执行kubectl get certificate确认报错是否消失。

旧API版本适配

若你使用的cert-manager为v1.0+版本,需同步迁移所有旧版本API资源:
执行kubectl get certificates.v1alpha2.cert-manager.io -A列出所有v1alpha2版本的证书资源,导出后将apiVersion修改为cert-manager.io/v1重新提交即可,避免强制走转换webhook逻辑。

内容的提问来源于stack exchange,提问作者Hunzla Ali

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 19:06:07