17 Confiance dans le certificat TLS de Google Chrome

Aperçu

Cette page fournit les étapes de configuration de Zabbix et des exemples de configuration pour utiliser Google Chrome avec l'interface Zabbix ou des points de terminaison zabbix-web-service sécurisés par un certificat auto-signé ou une autorité de certification privée.

Ces instructions supposent que le serveur web cible est déjà configuré pour HTTPS. Pour configurer TLS sur l'interface Zabbix, voir Connexion sécurisée à l'interface.

Configuration

Google Chrome sur Linux utilise une base de données NSS de certificats par utilisateur pour les certificats approuvés. Pour que Chrome fasse confiance à un certificat auto-signé ou à une autorité de certification privée, ajoutez les certificats requis à la base de données NSS du compte utilisateur qui exécute Chrome.

1. Installez les paquets requis.

Pour Debian/Ubuntu :

sudo apt install ca-certificates libnss3-tools

Pour les systèmes basés sur RHEL :

sudo dnf install ca-certificates nss-tools

Ou :

sudo yum install ca-certificates nss-tools

2. Préparez les fichiers de certificat.

Pour chaque certificat nécessaire : créez un fichier .crt au format PEM pour le certificat auto-signé, ou créez des fichiers .crt distincts au format PEM pour le certificat de l'autorité de certification racine et, si nécessaire, pour chaque certificat intermédiaire.

3. Créez le répertoire de la base de données NSS.

Utilisez le répertoire personnel de l'utilisateur qui exécute Chrome.

Par exemple :

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

Si Chrome sur le système cible utilise un autre emplacement de base de données NSS, utilisez ce répertoire à la place.

Assurez-vous que les fichiers de certificat sont lisibles par l'utilisateur qui exécute Google Chrome. Si nécessaire, copiez-les vers un emplacement accessible à cet utilisateur.

4. Importez les certificats.

Si vous utilisez un certificat auto-signé :

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

Si vous utilisez une autorité de certification privée, importez le certificat de l'autorité de certification racine dans la base de données :

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

Si des certificats intermédiaires sont utilisés, importez chacun d'eux séparément :

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

5. Vérifiez la base de données de certificats.

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

6. Testez Chrome.

Google Chrome utilise la base de données de certificats du compte utilisateur qui le lance. Si le compte utilisateur ne dispose pas d'un répertoire personnel inscriptible, configurez un répertoire personnel et des répertoires XDG inscriptibles avant d'exécuter le test.

Exemple (remplacez google-chrome par chromium si Chromium est utilisé.) :

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

Si la configuration est correcte, la commande renvoie le HTML de la page demandée.

Si Chrome ne fait pas confiance au certificat, la commande renvoie une page d'erreur de certificat contenant des messages tels que NET::ERR_CERT_AUTHORITY_INVALID.

Dépannage

Erreur Cause possible
NET::ERR_CERT_AUTHORITY_INVALID Le certificat a été importé dans le mauvais profil utilisateur, le certificat de l'autorité de certification racine est manquant, ou un certificat intermédiaire est manquant.
NET::ERR_CERT_COMMON_NAME_INVALID Le certificat ne correspond pas au nom d'hôte utilisé dans l'URL du navigateur.
NET::ERR_CERT_DATE_INVALID Le certificat a expiré, n'est pas encore valide, ou l'horloge système est incorrecte.
Chrome affiche toujours un avertissement de certificat après l'importation Chrome utilise une base de données NSS différente pour l'utilisateur actuel, ou les indicateurs de confiance du certificat sont incorrects.