Procedura di rinnovo dei certificati TLS tra nodo master e nodi satellite

Questa documentazione spiega come rinnovare i certificati TLS scaduti o in scadenza.

I certificati TLS vengono utilizzati per garantire una comunicazione sicura tra il nodo master e il nodo o i nodi satellite. La procedura richiede di rinnovare prima il certificato del nodo master, quindi quello dei nodi satellite.

Diagnosi della scadenza di un certificato

Certificate has expired

Connettersi in SSH al nodo satellite ed eseguire il comando seguente:

sudo cyberwatch logs sidekiq

Se l’output del comando contiene le informazioni seguenti, è possibile seguire la procedura per rinnovare i certificati:

Root CA found and valid, Redis certificate will be verified
[2023-10-30T14:47:12.695545 #1] ERROR -- : TLS/SSL error: certificate has expired
Root CA found and valid, MariaDB certificate will be verified
[2023-10-30T14:47:46.921936 #1] ERROR -- : TLS/SSL error: certificate has expired

Conoscere la data di scadenza del certificato root del nodo master

Connettersi in SSH al nodo master ed eseguire il comando seguente:

openssl x509 -noout -enddate -in /etc/cyberwatch/certs/cbw-root-ca-cert.pem
notAfter=Oct 1 00:00:00 2023 GMT

In questo esempio, il certificato non è più valido dopo il 1° ottobre 2023.

Rinnovare il certificato sul nodo master

  1. Connettersi in SSH al nodo master

  2. Salvare i certificati attuali:

    sudo mv /etc/cyberwatch/certs{,.old}
    
  3. Creare i nuovi certificati:

    Aggiungere, se necessario, le opzioni richieste dall’infrastruttura, ad esempio --no-db o --offline.

    sudo cyberwatch configure --master
    

    Rispondere no alla modifica della configurazione. Inserire l’indirizzo IP del nodo master e poi tutti i nomi di dominio utilizzati dai satelliti per raggiungere il nodo master. Verranno utilizzati come nomi alternativi (Subject Alternative Name).

  4. Verificare la validità del nuovo certificato:

    openssl x509 -noout -enddate -in /etc/cyberwatch/certs/cbw-root-ca-cert.pem
    notAfter=Nov 18 15:08:14 2025 GMT
    

Rinnovare il certificato sul nodo o sui nodi satellite

Versioni di cbw-on-premise precedenti alla 5.29: sul nodo satellite è presente un solo file /etc/cyberwatch/certs/cbw-root-ca-cert.pem. È sufficiente sostituire unicamente questo file con il nuovo certificato del nodo master (output di sudo cyberwatch show-root-cert sul master), quindi riavviare Cyberwatch.

  1. Recuperare il certificato valido sul nodo master:

    sudo cyberwatch show-root-cert
    
  2. Sul nodo satellite, scrivere l’output del comando precedente nel file /etc/cyberwatch/certs/cbw-root-ca-cert-master.pem:

    sudo vim /etc/cyberwatch/certs/cbw-root-ca-cert-master.pem
    
  3. Concatenare i certificati del satellite e del master nel file utilizzato dall’applicazione:

    cat /etc/cyberwatch/certs/cbw-root-ca-cert-satellite.pem /etc/cyberwatch/certs/cbw-root-ca-cert-master.pem | sudo tee /etc/cyberwatch/certs/cbw-root-ca-cert.pem
    
  4. Riavviare Cyberwatch sul nodo satellite:

    sudo cyberwatch restart
    

Verifica del funzionamento

  1. Per verificare che il nodo satellite sia in grado di raggiungere il nodo master con un certificato valido, controllare i log di sidekiq:

    sudo cyberwatch logs sidekiq | grep -C 10 "certificate will be verified"
    

    L’output dovrebbe essere simile al seguente:

    Healthcheck completed reporting a successful start
    Checking if Redis supports TLS
    Using TLS available on ...
    Root CA found and valid, Redis certificate will be verified
    Using Redis URL: rediss://...
    Checking if MariaDB supports TLS
    TLS is available for MariaDB
    Root CA found and valid, MariaDB certificate will be verified