17 Google Chrome TLS-Zertifikatsvertrauen

Übersicht

Diese Seite enthält Zabbix-Einrichtungsschritte und Konfigurationsbeispiele für die Verwendung von Google Chrome mit Zabbix-Frontend oder zabbix-web-service-Endpunkten, die durch ein selbstsigniertes Zertifikat oder eine private Zertifizierungsstelle abgesichert sind.

Diese Anweisungen setzen voraus, dass der Ziel-Webserver bereits für HTTPS konfiguriert ist. Informationen zur Konfiguration von TLS für das Zabbix-Frontend finden Sie unter Sichere Verbindung zum Frontend.

Konfiguration

Google Chrome unter Linux verwendet eine NSS-Zertifikatsdatenbank pro Benutzer für vertrauenswürdige Zertifikate. Damit Chrome einem selbstsignierten Zertifikat oder einer privaten Zertifizierungsstelle vertraut, fügen Sie die erforderlichen Zertifikate der NSS-Datenbank des Benutzerkontos hinzu, unter dem Chrome ausgeführt wird.

1. Installieren Sie die erforderlichen Pakete.

Für Debian/Ubuntu:

sudo apt install ca-certificates libnss3-tools

Für RHEL-basierte Systeme:

sudo dnf install ca-certificates nss-tools

Oder:

sudo yum install ca-certificates nss-tools

2. Bereiten Sie die Zertifikatsdateien vor.

Für jedes benötigte Zertifikat: Erstellen Sie eine PEM-basierte .crt-Datei für das selbstsignierte Zertifikat oder separate PEM-basierte .crt-Dateien für das Stammzertifikat der Zertifizierungsstelle und, falls erforderlich, für jedes Zwischenzertifikat.

3. Erstellen Sie das Verzeichnis der NSS-Datenbank.

Verwenden Sie das Home-Verzeichnis des Benutzers, der Chrome ausführt.

Zum Beispiel:

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

Wenn Chrome auf dem Zielsystem einen anderen Speicherort für die NSS-Datenbank verwendet, nutzen Sie stattdessen dieses Verzeichnis.

Stellen Sie sicher, dass die Zertifikatsdateien für den Benutzer, der Google Chrome ausführt, lesbar sind. Kopieren Sie sie bei Bedarf an einen für diesen Benutzer zugänglichen Speicherort.

4. Importieren Sie die Zertifikate.

Bei Verwendung eines selbstsignierten Zertifikats:

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

Bei Verwendung einer privaten Zertifizierungsstelle importieren Sie das Stammzertifikat der Zertifizierungsstelle in die Datenbank:

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

Wenn Zwischenzertifikate verwendet werden, importieren Sie jedes einzelne separat:

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

5. Überprüfen Sie die Zertifikatsdatenbank.

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

6. Testen Sie Chrome.

Google Chrome verwendet die Zertifikatsdatenbank des Benutzerkontos, das ihn startet. Wenn das Benutzerkonto kein beschreibbares Home-Verzeichnis hat, konfigurieren Sie vor dem Test ein beschreibbares Home-Verzeichnis und XDG-Verzeichnisse.

Beispiel (ersetzen Sie google-chrome durch chromium, wenn Chromium verwendet wird.):

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

Wenn die Konfiguration korrekt ist, gibt der Befehl das HTML der angeforderten Seite zurück.

Wenn Chrome dem Zertifikat nicht vertraut, gibt der Befehl eine Zertifikatsfehlerseite zurück, die Meldungen wie NET::ERR_CERT_AUTHORITY_INVALID enthält.

Fehlerbehebung

Fehler Mögliche Ursache
NET::ERR_CERT_AUTHORITY_INVALID Das Zertifikat wurde in das falsche Benutzerprofil importiert, das Stammzertifizierungsstellen-Zertifikat fehlt, oder ein Zwischenzertifikat fehlt.
NET::ERR_CERT_COMMON_NAME_INVALID Das Zertifikat stimmt nicht mit dem Hostnamen überein, der in der Browser-URL verwendet wird.
NET::ERR_CERT_DATE_INVALID Das Zertifikat ist abgelaufen, noch nicht gültig oder die Systemuhr ist falsch.
Chrome zeigt nach dem Import weiterhin eine Zertifikatswarnung an Chrome verwendet für den aktuellen Benutzer eine andere NSS-Datenbank, oder die Vertrauenskennzeichen des Zertifikats sind falsch.