证书经理订单处于无效状态

时间:2019-11-13 10:41:40

标签: kubernetes cert-manager

我正在从GitLab管理的Kubernetes集群迁移到自我管理的集群。在这个自我管理的集群中,需要安装nginx-ingress和cert-manager。我已经设法对用于审阅环境的集群执行相同的操作。我使用最新的Helm3 RC进行管理,因此不需要Tiller。

到目前为止,我运行了以下命令:

# Add Helm repos locally
helm repo add stable https://kubernetes-charts.storage.googleapis.com
helm repo add jetstack https://charts.jetstack.io

# Create namespaces
kubectl create namespace managed
kubectl create namespace production

# Create cert-manager crds
kubectl apply --validate=false -f https://raw.githubusercontent.com/jetstack/cert-manager/release-0.11/deploy/manifests/00-crds.yaml

# Install Ingress
helm install ingress stable/nginx-ingress --namespace managed --version 0.26.1

# Install cert-manager with a cluster issuer
kubectl apply -f config/production/cluster-issuer.yaml
helm install cert-manager jetstack/cert-manager --namespace managed --version v0.11.0

这是我的cluster-issuer.yaml

# Based on https://docs.cert-manager.io/en/latest/reference/issuers.html#issuers
apiVersion: cert-manager.io/v1alpha2
kind: ClusterIssuer
metadata:
  name: letsencrypt-prod
spec:
  acme:
    server: https://acme-v02.api.letsencrypt.org/directory
    email: XXX # This is an actual email address in the real resource
    privateKeySecretRef:
      name: letsencrypt-prod
    solvers:
      - selector: {}
        http01:
          ingress:
            class: nginx

我安装了自己的名为docs的Helm图表。 Helm图表中的所有资源均已按预期安装。使用cURL,我可以通过HTTP获取页面。 Google Chrome浏览器将我重定向到使用无效证书的HTTPS页面。

已创建以下附加资源:

$ kubectl get secrets                    
NAME                         TYPE                                  DATA   AGE
docs-tls                     kubernetes.io/tls                     3      18m
$ kubectl get certificaterequests.cert-manager.io                           
NAME                 READY   AGE
docs-tls-867256354   False   17m
$ kubectl get certificates.cert-manager.io 
NAME       READY   SECRET     AGE
docs-tls   False   docs-tls   18m
$ kubectl get orders.acme.cert-manager.io        
NAME                            STATE     AGE
docs-tls-867256354-3424941167   invalid   18m

似乎所有内容都在无效状态下被证书管理器命令阻止。为什么无效?以及我该如何解决?

2 个答案:

答案 0 :(得分:0)

事实证明,除了A的正确DNS @记录之外,还有一些AAAA记录指向我不知道的IPv6地址。删除这些记录并重新部署可以为我解决问题。

答案 1 :(得分:0)

您可以仅参考this stackoverflow post

一旦您将秘密修补到TLS,并在内部通过acme挑战进行了验证,证书将获得True状态