Ожидание выдачи сертификата из статуса заказа «ожидает»

Aug 15 2020

У меня проблема с обработкой сертификатов tls с помощью cert-manager, я следую документации и добавляю некоторые дополнения для работы с Traefikвходом.

В настоящее время у меня есть эти YAMLфайлы:

кластер-эмитент.yaml

apiVersion: cert-manager.io/v1alpha2
kind: ClusterIssuer
metadata:
  name: letsencrypt-staging
  namespace: secure-alexguedescom
spec:
  acme:
    email: [email protected]
    server: https://acme-staging-v02.api.letsencrypt.org/directory
    privateKeySecretRef:
      # Secret resource used to store the account's private key.
      name: letsencrypt-staging
    # Add a single challenge solver, HTTP01 using nginx
    solvers:
      - selector: {}
        http01:
          ingress:
            class: traefik-cert-manager

traefik-ingress.yaml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    # add an annotation indicating the issuer to use.
    cert-manager.io/cluster-issuer: letsencrypt-staging
  name: secure-alexguedescom-ingress-http
  namespace: secure-alexguedescom
spec:
  rules:
  - host: secure.alexguedes.com
    http:
      paths:
      - backend:
          serviceName: secure-alexguedescom-nginx
          servicePort: 80
        path: /
  tls: 
  - hosts:
    - secure.alexguedes.com
    secretName: secure-alexguedescom-cert 

cert-staging.yaml

apiVersion: cert-manager.io/v1alpha2
kind: Certificate
metadata:
  name: secure-alexguedescom-cert
  namespace: secure-alexguedescom
spec:
  commonName: secure.alexguedes.com
  secretName: letsencrypt-staging
  dnsNames:
    - secure.alexguedes.com
  issuerRef:
    name: letsencrypt-staging
    kind: ClusterIssuer

Проверяя сертификаты, у меня есть это сообщение об ошибке:

Message: Issuing certificate as Secret does not contain a certificate
Reason: MissingData

Также проверив certificaterequestсообщения журнала:

Status:
  Conditions:
    Last Transition Time:  2020-08-16T00:32:01Z
    Message:               Waiting on certificate issuance from order secure-alexguedescom/secure-alexguedescom-cert-q8w5p-1982372682: "pending"
    Reason:                Pending
    Status:                False
    Type:                  Ready
Events:
  Type    Reason        Age   From          Message
  ----    ------        ----  ----          -------
  Normal  OrderCreated  11m   cert-manager  Created Order resource secure-alexguedescom/secure-alexguedescom-cert-q8w5p-1982372682
  Normal  OrderPending  11m   cert-manager  Waiting on certificate issuance from order secure-alexguedescom/secure-alexguedescom-cert-q8w5p-1982372682: ""

Я не уверен, какая часть неправильная, используя Helm v2 с Tiller и k8s v1.7

Есть идеи?

заранее спасибо

Ответы

6 Rico Aug 16 2020 at 05:47

Типичная проблема с сертификатами letsencrypt заключается в том, что letsencrypt не может проверить, кто вы и что вы владеете доменом. В этом случае alexguedes.com.

С помощью cert-manager вы можете выполнять проверку домена и проверку HTTP . На основании опубликованного ClusterIssuerвы выполняете HTTP-проверку. Таким образом, вам нужно убедиться, что он secure.alexguedes.comразрешается в глобально доступный IP-адрес и что порт Traefik 443прослушивает этот IP-адрес.