Procediment per renovar els certificats TLS a Kubernetes

Aquesta pàgina descriu el procediment de renovació dels certificats TLS que genera Helm per a les comunicacions internes entre els serveis de Cyberwatch.

Durada de validesa per defecte

Helm genera automàticament certificats TLS per protegir les comunicacions internes entre els serveis (base de dades, Redis, Elasticsearch, etc.).

Les durades de validesa per defecte són:

  • Certificats de servei: 365 dies (1 any)
  • Certificat de l’autoritat de certificació (CA): 3650 dies (10 anys)

Aquests certificats es conserven en secrets de Kubernetes. Helm només torna a generar un certificat si el secret corresponent encara no existeix al clúster (mecanisme lookup).

Els certificats de servei s’han de renovar abans que caduquin per evitar una interrupció de la comunicació entre els serveis.

Comprovar la data de caducitat dels certificats

Llisteu els secrets de tipus TLS i mostreu-ne la data de caducitat:

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

Per al certificat de la CA (emmagatzemat amb una clau diferent):

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

Procediment de renovació dels certificats de servei

Per forçar que es tornin a generar els certificats, cal suprimir els secrets existents i tornar a executar helm upgrade.

  1. Identifiqueu els secrets de certificats que cal renovar amb l’ordre de comprovació anterior.

  2. Suprimiu els secrets identificats, per exemple:

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

    Helm no renova automàticament alguns secrets TLS (per exemple, cyberwatch-tls). Aquests secrets s’han de tornar a crear manualment. Consulteu la documentació sobre la configuració TLS per a Kubernetes per a més informació.

  3. Seguiu el procediment d’actualització de les imatges per tornar a executar el desplegament amb Helm i renovar els certificats.

  4. Podeu tornar a executar l’ordre de comprovació de la data de caducitat dels certificats per confirmar que s’han renovat correctament.

Renovació del certificat de la CA

La renovació de la CA invalida tots els certificats de servei que ha signat. Cal suprimir i tornar a crear tots els secrets de certificats.

  1. Suprimiu el secret de la CA i tots els secrets de certificats de servei.

  2. Seguiu els passos del 2 al 4 del procediment de renovació dels certificats de servei anterior.