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.
Identificare i secret dei certificati da rinnovare tramite il comando di verifica riportato sopra.
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.Seguire la procedura di aggiornamento delle immagini per rilanciare la distribuzione con Helm e rinnovare i certificati.
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.
Eliminare il secret della CA e tutti i secret dei certificati di servizio.
Seguire i passaggi da 2 a 4 della procedura di rinnovo dei certificati di servizio riportata sopra.