17 Zaufanie do certyfikatu TLS w Google Chrome

Przegląd

Ta strona zawiera kroki konfiguracji Zabbix oraz przykłady konfiguracji dotyczące używania Google Chrome z frontend Zabbix lub punktami końcowymi zabbix-web-service zabezpieczonymi certyfikatem samopodpisanym albo certyfikatem wydanym przez prywatny urząd certyfikacji.

Instrukcje te zakładają, że docelowy serwer WWW jest już skonfigurowany do pracy z HTTPS. Informacje o konfiguracji TLS dla frontend Zabbix można znaleźć w sekcji Bezpieczne połączenie z frontend.

Konfiguracja

Google Chrome w systemie Linux używa bazy certyfikatów NSS dla zaufanych certyfikatów, oddzielnej dla każdego użytkownika. Aby Chrome ufał certyfikatowi samopodpisanemu lub prywatnemu urzędowi certyfikacji, dodaj wymagane certyfikaty do bazy NSS konta użytkownika, które uruchamia Chrome.

1. Zainstaluj wymagane pakiety.

Dla Debian/Ubuntu:

sudo apt install ca-certificates libnss3-tools

Dla systemów opartych na RHEL:

sudo dnf install ca-certificates nss-tools

Lub:

sudo yum install ca-certificates nss-tools

2. Przygotuj pliki certyfikatów.

Dla każdego wymaganego certyfikatu: utwórz plik .crt w formacie PEM dla certyfikatu samopodpisanego albo utwórz oddzielne pliki .crt w formacie PEM dla certyfikatu głównego urzędu certyfikacji oraz, jeśli to konieczne, dla każdego certyfikatu pośredniego.

3. Utwórz katalog bazy NSS.

Użyj katalogu domowego użytkownika, który uruchamia Chrome.

Na przykład:

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

Jeśli Chrome w systemie docelowym używa innej lokalizacji bazy NSS, użyj zamiast tego tego katalogu.

Upewnij się, że pliki certyfikatów są czytelne dla użytkownika, który uruchamia Google Chrome. W razie potrzeby skopiuj je do lokalizacji dostępnej dla tego użytkownika.

4. Zaimportuj certyfikaty.

Jeśli używasz certyfikatu samopodpisanego:

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

Jeśli używasz prywatnego urzędu certyfikacji, zaimportuj do bazy certyfikat głównego urzędu certyfikacji:

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

Jeśli używane są jakiekolwiek certyfikaty pośrednie, zaimportuj każdy z nich osobno:

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

5. Zweryfikuj bazę certyfikatów.

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

6. Przetestuj Chrome.

Google Chrome używa bazy certyfikatów konta użytkownika, które go uruchamia. Jeśli konto użytkownika nie ma zapisywalnego katalogu domowego, skonfiguruj zapisywalny katalog domowy oraz katalogi XDG przed uruchomieniem testu.

Przykład (zastąp google-chrome przez chromium, jeśli używany jest 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

Jeśli konfiguracja jest poprawna, polecenie zwróci kod HTML żądanej strony.

Jeśli Chrome nie ufa certyfikatowi, polecenie zwróci stronę błędu certyfikatu zawierającą komunikaty takie jak NET::ERR_CERT_AUTHORITY_INVALID.

Rozwiązywanie problemów

Błąd Możliwa przyczyna
NET::ERR_CERT_AUTHORITY_INVALID Certyfikat został zaimportowany do niewłaściwego profilu użytkownika, brakuje certyfikatu głównego urzędu certyfikacji albo brakuje certyfikatu pośredniego.
NET::ERR_CERT_COMMON_NAME_INVALID Certyfikat nie pasuje do nazwy hosta użytej w adresie URL w przeglądarce.
NET::ERR_CERT_DATE_INVALID Certyfikat wygasł, nie jest jeszcze ważny albo zegar systemowy jest nieprawidłowy.
Chrome nadal wyświetla ostrzeżenie o certyfikacie po imporcie Chrome używa innej bazy danych NSS dla bieżącego użytkownika albo flagi zaufania certyfikatu są nieprawidłowe.