Agregue un certificado TLS personalizado
Puede quitar el certificado TLS autofirmado existente y reemplazarlo con un certificado TLS firmado por una entidad de certificación (CA).
-
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.
-
Con SSH, inicie sesión en el clúster Kubernetes que aloja Astra Control Center como usuario administrativo.
-
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>
-
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.
-
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>
-
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>
-
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>
-
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
-
Cree el certificado con el comando siguiente:
kubectl apply -f certificate.yaml
-
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>
-
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
-
Con un explorador web, vaya a la dirección IP de implementación de Astra Control Center.
-
Compruebe que los detalles del certificado coinciden con los detalles del certificado que ha instalado.
-
Exporte el certificado e importe el resultado en el administrador de certificados en su navegador web.