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. |