Modificare il certificato TLS di Cyberwatch

Formato richiesto per il certificato e la chiave

Il certificato e la chiave devono essere in formato PEM.

La chiave non deve essere cifrata.

Questo formato è solo una convenzione di denominazione: l’estensione dei file del certificato e della chiave non ha un reale valore tecnico.

Indica che i file previsti sono in formato testo, con il contenuto del certificato codificato in base 64 tra le stringhe seguenti:

-----BEGIN CERTIFICATE-----
...certificat_encodé...
-----END CERTIFICATE-----

Con Docker Swarm

  1. Copiare il nuovo certificato nel container nginx:

    docker cp monfichier.crt $(docker ps -f name=cbwonpremise_nginx -q):/etc/nginx/ssl/nginx.crt
    docker cp monfichier.key $(docker ps -f name=cbwonpremise_nginx -q):/etc/nginx/ssl/nginx.key
    
  2. Verificare la presenza dei file:

    sudo cyberwatch exec nginx ls -l /etc/nginx/ssl
    
    total 12
    -rw-r--r-- 1 root root  424 Aug 20 09:22 dhparams.pem
    -rw-r--r-- 1 1000 1000 1274 Aug 10 12:20 nginx.crt
    -rw-r--r-- 1 1000 1000 1705 Aug 10 12:20 nginx.key
    
  3. (Consigliato) Attivare l’header HSTS:

    Si consiglia di attivare l’header HSTS per rafforzare la sicurezza delle connessioni, imponendo l’utilizzo del protocollo HTTPS.

    Aggiungere la riga seguente nel file /etc/cyberwatch/containers.env:

    ENABLE_HSTS="true"
    
  4. Riavviare Cyberwatch:

    sudo cyberwatch restart
    

Troubleshooting

Nel caso in cui Cyberwatch non si riavvii, è possibile consultare i log del container nginx con il comando seguente:

sudo cyberwatch logs nginx -f

Se si è verificato un problema durante l’aggiunta del nuovo certificato, in questi log dovrebbe comparire un errore.

Una configurazione errata del certificato può provocare il crash del container nginx. Poiché questo container deve essere avviato per consentire la riconfigurazione del certificato, quando si verifica questo tipo di errore è necessario seguire la procedura seguente per poter configurare nuovamente il certificato:

  1. Eliminare il volume nginx:

     sudo docker volume rm cbwonpremise_data_ssl
    
  2. Riavviare l’applicazione Cyberwatch: in assenza del volume, nginx genererà un nuovo certificato autofirmato e riavvierà il container:

     sudo cyberwatch restart
    
  3. Configurare nuovamente il certificato, seguendo la procedura completa descritta sopra

Con Kubernetes

  1. Prerequisito: aver avviato Cyberwatch almeno una volta
  2. Sostituire i file nginx.crt e nginx.key rispettivamente con il certificato e la chiave privata associata nella directory /var/lib/volumes/cyberwatch/ssl
  3. Riavviare Cyberwatch:

    sudo cyberwatch restart