17 Fiducia del certificato TLS di Google Chrome

Panoramica

Questa pagina fornisce i passaggi di configurazione di Zabbix e esempi di configurazione per l'uso di Google Chrome con il frontend di Zabbix o con endpoint zabbix-web-service protetti da un certificato autofirmato o da una autorità di certificazione privata.

Queste istruzioni presuppongono che il server web di destinazione sia già configurato per HTTPS. Per configurare TLS sul frontend di Zabbix, vedere Connessione sicura al frontend.

Configurazione

Google Chrome su Linux utilizza un database di certificati NSS per utente per i certificati attendibili. Per fare in modo che Chrome si fidi di un certificato autofirmato o di una autorità di certificazione privata, aggiungi i certificati richiesti al database NSS dell'account utente che esegue Chrome.

1. Installa i pacchetti richiesti.

Per Debian/Ubuntu:

sudo apt install ca-certificates libnss3-tools

Per sistemi basati su RHEL:

sudo dnf install ca-certificates nss-tools

Oppure:

sudo yum install ca-certificates nss-tools

2. Prepara i file del certificato.

Per ogni certificato necessario: crea un file .crt basato su PEM per il certificato autofirmato, oppure crea file .crt separati basati su PEM per il certificato dell'autorità di certificazione radice e, se necessario, per ciascun certificato intermedio.

3. Crea la directory del database NSS.

Usa la directory home dell'utente che esegue Chrome.

Ad esempio:

sudo mkdir -p /var/lib/zabbix/.pki/nssdb
sudo -u zabbix certutil -N -d sql:/var/lib/zabbix/.pki/nssdb
sudo chown -R zabbix:zabbix /var/lib/zabbix/.pki/nssdb

Se Chrome sul sistema di destinazione usa una posizione diversa per il database NSS, usa invece quella directory.

Assicurati che i file del certificato siano leggibili dall'utente che esegue Google Chrome. Se necessario, copiali in una posizione accessibile a quell'utente.

4. Importa i certificati.

Se utilizzi un certificato autofirmato:

sudo -u zabbix certutil -d sql:/var/lib/zabbix/.pki/nssdb \
  -A -t "P,," \
  -n "Zabbix self-signed certificate" \
  -i /path/to/self-signed.crt

Se utilizzi un'autorità di certificazione privata, importa il certificato dell'autorità di certificazione radice nel database:

sudo -u zabbix certutil -d sql:/var/lib/zabbix/.pki/nssdb \
  -A -t "C,," \
  -n "Zabbix root certificate authority" \
  -i /path/to/root-ca.crt

Se vengono usati certificati intermedi, importa ciascuno separatamente:

sudo -u zabbix certutil -d sql:/var/lib/zabbix/.pki/nssdb \
  -A -t ",," \
  -n "Zabbix intermediate certificate" \
  -i /path/to/intermediate-ca.crt

5. Verifica il database dei certificati.

sudo -u zabbix certutil -d sql:/var/lib/zabbix/.pki/nssdb -L

6. Testa Chrome.

Google Chrome utilizza il database dei certificati dell'account utente che lo avvia. Se l'account utente non dispone di una directory home scrivibile, configura una home scrivibile e le directory XDG prima di eseguire il test.

Esempio (sostituisci google-chrome con chromium se viene usato Chromium.):

sudo -u zabbix env \
  HOME=/var/lib/zabbix-home \
  XDG_CONFIG_HOME=/var/lib/zabbix-home/.config \
  XDG_DATA_HOME=/var/lib/zabbix-home/.local/share \
  XDG_CACHE_HOME=/var/lib/zabbix-home/.cache \
  google-chrome --headless --disable-gpu \
  --user-data-dir=/var/lib/zabbix-home/chrome-profile \
  --dump-dom https://FQDN_OF_ZABBIX_SERVER

Se la configurazione è corretta, il comando restituisce l'HTML della pagina richiesta.

Se Chrome non si fida del certificato, il comando restituisce una pagina di errore del certificato contenente messaggi come NET::ERR_CERT_AUTHORITY_INVALID.

Risoluzione dei problemi

Errore Possibile causa
NET::ERR_CERT_AUTHORITY_INVALID Il certificato è stato importato nel profilo utente sbagliato, il certificato dell'autorità di certificazione radice manca oppure manca un certificato intermedio.
NET::ERR_CERT_COMMON_NAME_INVALID Il certificato non corrisponde all'hostname usato nell'URL del browser.
NET::ERR_CERT_DATE_INVALID Il certificato è scaduto, non è ancora valido oppure l'orologio di sistema non è corretto.
Chrome mostra ancora un avviso relativo al certificato dopo l'importazione Chrome sta usando un database NSS diverso per l'utente corrente oppure i flag di attendibilità del certificato non sono corretti.