Skip to main content
Hay disponible una nueva versión de este producto.
Se proporciona el idioma español mediante traducción automática para su comodidad. En caso de alguna inconsistencia, el inglés precede al español.

Agregue un certificado TLS personalizado

Colaboradores

Puede quitar el certificado TLS autofirmado existente y reemplazarlo con un certificado TLS firmado por una entidad de certificación (CA).

Lo que necesitará
  • Clúster Kubernetes con Astra Control Center instalado

  • Acceso administrativo a un shell de comandos en el clúster para ejecutar kubectl comandos

  • Archivos de claves privadas y certificados de la CA

Quite el certificado autofirmado

Quite el certificado TLS autofirmado existente.

  1. Con SSH, inicie sesión en el clúster Kubernetes que aloja Astra Control Center como usuario administrativo.

  2. Busque el secreto TLS asociado con el certificado actual mediante el comando siguiente, reemplazo <ACC-deployment-namespace> Con el espacio de nombres de puesta en marcha de Astra Control Center:

    kubectl get certificate -n <ACC-deployment-namespace>
  3. Elimine el secreto y certificado instalados actualmente con los comandos siguientes:

    kubectl delete cert cert-manager-certificates -n <ACC-deployment-namespace>
    kubectl delete secret secure-testing-cert -n <ACC-deployment-namespace>

Añadir un nuevo certificado

Añada un nuevo certificado TLS firmado por una CA.

  1. Utilice el siguiente comando para crear el nuevo secreto TLS con la clave privada y los archivos de certificado de la CA, reemplazando los argumentos entre paréntesis <> con la información adecuada:

    kubectl create secret tls <secret-name> --key <private-key-filename> --cert <certificate-filename> -n <ACC-deployment-namespace>
  2. Utilice el siguiente comando y el ejemplo para editar el archivo de definición de recursos personalizados (CRD) del clúster y cambiar el spec.selfSigned valor a. spec.ca.secretName Para hacer referencia al secreto TLS que ha creado anteriormente:

    kubectl edit clusterissuers.cert-manager.io/cert-manager-certificates -n <ACC-deployment-namespace>
    ....
    
    #spec:
    #  selfSigned: {}
    
    spec:
      ca:
        secretName: <secret-name>
  3. Utilice el siguiente comando y el resultado de ejemplo para validar que los cambios son correctos y que el clúster está listo para validar certificados, sustituir <ACC-deployment-namespace> Con el espacio de nombres de puesta en marcha de Astra Control Center:

    kubectl describe clusterissuers.cert-manager.io/cert-manager-certificates -n <ACC-deployment-namespace>
    ....
    
    Status:
      Conditions:
        Last Transition Time:  2021-07-01T23:50:27Z
        Message:               Signing CA verified
        Reason:                KeyPairVerified
        Status:                True
        Type:                  Ready
    Events:                    <none>
  4. Cree el certificate.yaml archivo utilizando el ejemplo siguiente, reemplazando los valores de marcador de posición entre corchetes <> con la información apropiada:

    apiVersion: cert-manager.io/v1
    kind: Certificate
    metadata:
      name: <certificate-name>
      namespace: <ACC-deployment-namespace>
    spec:
      secretName: <certificate-secret-name>
      duration: 2160h # 90d
      renewBefore: 360h # 15d
      dnsNames:
      - <astra.dnsname.example.com> #Replace with the correct Astra Control Center DNS address
      issuerRef:
        kind: ClusterIssuer
        name: cert-manager-certificates
  5. Cree el certificado con el comando siguiente:

    kubectl apply -f certificate.yaml
  6. Con el siguiente comando y el resultado de ejemplo, valide que el certificado se ha creado correctamente y con los argumentos especificados durante la creación (como nombre, duración, plazo de renovación y nombres DNS).

    kubectl describe certificate -n <ACC-deployment-namespace>
    ....
    
    Spec:
      Dns Names:
        astra.example.com
      Duration:  125h0m0s
      Issuer Ref:
        Kind:        ClusterIssuer
        Name:        cert-manager-certificates
      Renew Before:  61h0m0s
      Secret Name:   <certificate-secret-name>
    Status:
      Conditions:
        Last Transition Time:  2021-07-02T00:45:41Z
        Message:               Certificate is up to date and has not expired
        Reason:                Ready
        Status:                True
        Type:                  Ready
      Not After:               2021-07-07T05:45:41Z
      Not Before:              2021-07-02T00:45:41Z
      Renewal Time:            2021-07-04T16:45:41Z
      Revision:                1
    Events:                    <none>
  7. Edite la opción Ingress CRD TLS para que apunte al nuevo secreto de certificado utilizando el siguiente comando y ejemplo, reemplazando los valores de marcador de posición entre paréntesis <> con la información adecuada:

    kubectl edit ingressroutes.traefik.containo.us -n <ACC-deployment-namespace>
    ....
    
    # tls:
    #    options:
    #      name: default
    #    secretName: secure-testing-cert
    #    store:
    #      name: default
    
     tls:
        options:
          name: default
        secretName: <certificate-secret-name>
        store:
          name: default
  8. Con un explorador web, vaya a la dirección IP de implementación de Astra Control Center.

  9. Compruebe que los detalles del certificado coinciden con los detalles del certificado que ha instalado.

  10. Exporte el certificado e importe el resultado en el administrador de certificados en su navegador web.