Procedimiento para la renovación de certificados TLS en Kubernetes

Esta página describe el procedimiento de renovación de los certificados TLS generados por Helm para las comunicaciones internas entre los servicios de Cyberwatch.

Duración de validez por defecto

Helm genera automáticamente certificados TLS para asegurar las comunicaciones internas entre los servicios (base de datos, Redis, Elasticsearch, etc.).

Las duraciones de validez por defecto son:

  • Certificados de servicio: 365 días (1 año)
  • Certificado de la autoridad de certificación (CA): 3650 días (10 años)

Estos certificados se almacenan en secrets de Kubernetes. Helm solo regenera un certificado si el secret correspondiente no existe ya en el clúster (mecanismo lookup).

Los certificados de servicio deben renovarse antes de su expiración para evitar una interrupción de la comunicación entre los servicios.

Verificar la fecha de expiración de los certificados

Listar los secrets de tipo TLS y mostrar su fecha de expiración:

for secret in $(kubectl -n cyberwatch get secrets -o jsonpath='{.items[?(@.type=="kubernetes.io/tls")].metadata.name}'); do
  enddate=$(kubectl -n cyberwatch get secret "$secret" -o jsonpath='{.data.tls\.crt}' | \
    base64 -d | openssl x509 -noout -enddate | cut -d= -f2)
  printf "%-30s %s\n" "$secret" "$enddate"
done

Para el certificado CA (almacenado bajo una clave diferente):

kubectl -n cyberwatch get secret cyberwatch-root-ca -o jsonpath='{.data.root-ca\.crt}' | \
  base64 -d | openssl x509 -noout -enddate

Procedimiento de renovación de los certificados de servicio

Para forzar la regeneración de los certificados, es necesario eliminar los secrets existentes y luego relanzar helm upgrade.

  1. Identificar los secrets de certificados a renovar usando el comando de verificación anterior.

  2. Eliminar los secrets identificados, por ejemplo:

    kubectl -n cyberwatch delete secret <secret-1> <secret-2> ...
    

    Algunos secrets TLS no son renovados automáticamente por Helm (por ejemplo cyberwatch-tls). Estos secrets deben recrearse manualmente. Consulte la documentación sobre la configuración TLS para Kubernetes para más información.

  3. Seguir el procedimiento de actualización de imágenes para relanzar el despliegue con Helm y renovar los certificados.

  4. El comando para verificar la fecha de expiración de los certificados puede relanzarse para confirmar que los certificados han sido renovados correctamente.

Renovación del certificado CA

La renovación del CA invalida todos los certificados de servicio firmados por él. Todos los secrets de certificados deben eliminarse y recrearse.

  1. Eliminar el secret del CA así como todos los secrets de certificados de servicio.

  2. Seguir los pasos 2 a 4 del procedimiento de renovación de los certificados de servicio anterior.


Volver arriba

English Français Español