es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Kubernetes Cert Manager reto dns01 para dnsmadeeasy.

He desplegado mi aplicación en Kubernetes. He configurado el cert manager e issuer para generar un certificado SSL para el subdominio específico. Funciona bien. Ahora quiero generar un certificado SSL de comodín. Para el comodín, ACME/letsencrypt utiliza el desafío dns01. Mi proveedor de DNS no está en la lista de proveedores de DNS compatibles. Mi dominio está alojado en dnsmadeeasy. ¿Cómo completar el desafío dns01 para obtener un certificado SSL?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para completar el desafío dns01 y obtener un certificado SSL wildcard de ACME/LetsEncrypt utilizando cert-manager, incluso si su proveedor de DNS no está en la lista de soporte, puede seguir los siguientes pasos:

    1. Instale el controlador de cert-manager en su clúster de Kubernetes y asegúrese de que esté en funcionamiento.
    2. Cree una zona DNS en su cuenta de dnsmadeeasy y agregue un registro TXT para el subdominio específico para el cual necesita obtener un certificado SSL.

    3. Cree un token de API con permisos para administrar registros DNS desde su cuenta de dnsmadeeasy.

    4. Cree un secreto de Kubernetes utilizando el token de API de dnsmadeeasy con el siguiente comando:

    kubectl create secret generic dnsmadeeasy-credentials --from-literal="password=MI_CLAVE_API_DNSMADEEASY" --namespace=MI_NAMESPACE_DE_KUBE
    
    1. Cree un ClusterIssuer que utilice las credenciales de su cuenta de dnsmadeeasy y especifique la zona DNS:
    apiVersion: cert-manager.io/v1alpha2
    kind: ClusterIssuer
    metadata:
      name: letsencrypt-dnsmadeeasy
    spec:
      acme:
        server: https://acme-v02.api.letsencrypt.org/directory
        email: mi@email.com
        privateKeySecretRef:
          name: letsencrypt-dnsmadeeasy
        solvers:
        - dns01:
            dnsmadeeasy:
              apiTokenSecretRef:
                name: dnsmadeeasy-credentials
                key: password
              useHTTPStatus: true
              timeout: 600
    
    1. Finalmente, cree un recurso de Certificate que especifique el ClusterIssuer, el dominio wildcard y el secreto donde se almacenará el certificado:
    apiVersion: cert-manager.io/v1alpha2
    kind: Certificate
    metadata:
      name: wildcard-cert
    spec:
      secretName: wildcard-cert-tls
      commonName: *.midominio.com
      issuerRef:
        name: letsencrypt-dnsmadeeasy
        kind: ClusterIssuer
      dnsNames:
      - *.midominio.com
    

    Después de seguir estos pasos, cert-manager creará automáticamente un registro TXT en su zona DNS con la información de desafío necesaria y esperará a que LetsEncrypt lo valide. Una vez que la validación sea exitosa, se generará el certificado SSL wildcard y se almacenará en el secreto de Kubernetes especificado.

Comments are closed.