Procedura per il rinnovo dei certificati TLS su Kubernetes

Questa pagina descrive la procedura di rinnovo dei certificati TLS generati da Helm per le comunicazioni interne tra i servizi di Cyberwatch.

Durata di validità predefinita

Helm genera automaticamente certificati TLS per proteggere le comunicazioni interne tra i servizi (database, Redis, Elasticsearch, ecc.).

Le durate di validità predefinite sono:

  • Certificati di servizio: 365 giorni (1 anno)
  • Certificato dell’autorità di certificazione (CA): 3650 giorni (10 anni)

Questi certificati sono conservati in secret Kubernetes. Helm rigenera un certificato solo se il secret corrispondente non esiste già nel cluster (meccanismo lookup).

I certificati di servizio devono essere rinnovati prima della loro scadenza per evitare un’interruzione della comunicazione tra i servizi.

Verificare la data di scadenza dei certificati

Elencare i secret di tipo TLS e visualizzarne la data di scadenza:

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 il certificato CA (memorizzato con una chiave diversa):

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

Procedura di rinnovo dei certificati di servizio

Per forzare la rigenerazione dei certificati, è necessario eliminare i secret esistenti e quindi rieseguire helm upgrade.

  1. Identificare i secret dei certificati da rinnovare tramite il comando di verifica riportato sopra.

  2. Eliminare i secret identificati, ad esempio:

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

    Alcuni secret TLS non vengono rinnovati automaticamente da Helm (ad esempio cyberwatch-tls). Questi secret devono essere ricreati manualmente. Per ulteriori informazioni, consultare la documentazione sulla configurazione TLS per Kubernetes.

  3. Seguire la procedura di aggiornamento delle immagini per rilanciare la distribuzione con Helm e rinnovare i certificati.

  4. Il comando per verificare la data di scadenza dei certificati può essere rieseguito per confermare che i certificati siano stati effettivamente rinnovati.

Rinnovo del certificato CA

Il rinnovo della CA invalida tutti i certificati di servizio da essa firmati. Tutti i secret dei certificati devono essere eliminati e ricreati.

  1. Eliminare il secret della CA e tutti i secret dei certificati di servizio.

  2. Seguire i passaggi da 2 a 4 della procedura di rinnovo dei certificati di servizio riportata sopra.