nginx 在GKE集群内安装Issuer(cert-manager)时出现问题tls:无法验证证书:x509:证书由未知机构签名

q5lcpyga  于 5个月前  发布在  Nginx
关注(0)|答案(2)|浏览(112)

我在GKE内部安装Issuer时遇到问题。我遵循此指南https://cert-manager.io/docs/tutorials/acme/nginx-ingress/#step-5---deploy-cert-manager。
我的步骤是:
1.通过Google Cloud Console创建自动驾驶集群
1.通过helm安装nginx ingress控制器(https://cert-manager.io/docs/tutorials/acme/nginx-ingress/#step-2-deploy-the-nginx-ingress-controller)
1.我从服务“quickstart-ingress-nginx-controller”读取了外部IP
1.我把IP放在A记录上,在我的域名的DNS区域内(通过register.it购买)
1.我成功地部署了kuard部署、服务和入口
在此之后,我尝试以两种方式安装cert-manager:
1.第一种方法是使用helm遵循此guide,但我收到错误:Error: INSTALLATION FAILED: failed post-install: timed out waiting for the condition
1.我尝试使用这个guidekubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.13.2/cert-manager.yaml通过kubectl安装cert-manager,一切正常
在所有这些之后,我创建了文件issuer.yaml

apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
  name: letsencrypt-staging
spec:
  acme:
    # The ACME server URL
    server: https://acme-staging-v02.api.letsencrypt.org/directory
    # Email address used for ACME registration
    email: [email protected]
    # Name of a secret used to store the ACME account private key
    privateKeySecretRef:
      name: letsencrypt-staging
    # Enable the HTTP-01 challenge provider
    solvers:
      - http01:
          ingress:
            ingressClassName: nginx

字符串
然后运行kubectl apply -f issuer.yaml并收到以下错误:

Error from server (InternalError): error when creating "issuer.yaml":
Internal error occurred: failed calling webhook "webhook.cert-manager.io":
failed to call webhook: Post "https://cert-manager-webhook.cert-manager.svc:443/mutate?timeout=10s":
tls: failed to verify certificate: x509: certificate signed by unknown authority


我一步一步地跟着指南走,我错过了什么吗?

编辑27/11/2023

我在GKE上创建了一个非自动驾驶仪集群,一切似乎都正常,问题是我需要一个自动驾驶仪集群,而不是一个经典的。

628mspwn

628mspwn1#

最后我发现问题出在autopilot集群上,对于一个我不知道的机制,nginx控制器,加上cert管理器,让我们加密和autopilot集群不能一起工作。
我创建了一个自动驾驶仪集群,一个GCE入口,现在我使用的是由谷歌创建的托管证书

snz8szmq

snz8szmq2#

这是由于API服务器无法验证证书管理器webhook证书的真实性。
如果您的证书管理器webhook使用的是自签名证书,请将该证书添加到API服务器的受信任CA捆绑包。您还可以从受信任CA获取证书,并将证书管理器webhook配置为使用新证书。
确保cert-manager webhook正在运行,并且pod上的端口443已打开。kubectl get pods -n cert-manager
有关更多信息,请参见document 1document 2

相关问题