18. Доверие к TLS-сертификату Google Chrome
Обзор
На этой странице приведены шаги по настройке Zabbix и примеры конфигурации для использования Google Chrome с веб-интерфейсом Zabbix или конечными точками zabbix-web-service, защищёнными самоподписанным сертификатом или сертификатом частного удостоверяющего центра (CA, certificate authority).
Эти инструкции предполагают, что целевой веб-сервер уже настроен для работы по HTTPS.
Настройка
Google Chrome в Linux использует для доверенных сертификатов базу сертификатов NSS для каждого пользователя. Чтобы Chrome доверял самоподписанному сертификату или частному удостоверяющему центру, добавьте необходимые сертификаты в базу NSS учётной записи пользователя, из-под которой запускается Chrome.
1. Установите необходимые пакеты.
Для Debian/Ubuntu:
sudo apt install ca-certificates libnss3-tools
Для систем на базе RHEL:
sudo dnf install ca-certificates nss-tools
Или:
sudo yum install ca-certificates nss-tools
2. Подготовьте файлы сертификатов.
Для каждого необходимого сертификата: создайте файл .crt в формате PEM для самоподписанного сертификата или создайте отдельные файлы .crt в формате PEM для сертификата корневого удостоверяющего центра и, если требуется, для каждого промежуточного сертификата.
3. Создайте каталог базы NSS.
Используйте домашний каталог пользователя, из-под которого запускается Chrome.
Например:
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
Если Chrome в целевой системе использует другое расположение базы NSS, используйте этот каталог.
Убедитесь, что файлы сертификатов доступны для чтения пользователю, из-под которого запускается Google Chrome. При необходимости скопируйте их в место, доступное этому пользователю.
4. Импортируйте сертификаты.
Если используется самоподписанный сертификат:
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
Если используется частный удостоверяющий центр, импортируйте в базу сертификат корневого удостоверяющего центра:
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
Если используются какие-либо промежуточные сертификаты, импортируйте каждый из них отдельно:
sudo -u zabbix certutil -d sql:/var/lib/zabbix/.pki/nssdb \
-A -t ",," \
-n "Zabbix intermediate certificate" \
-i /path/to/intermediate-ca.crt
5. Проверьте базу сертификатов.
sudo -u zabbix certutil -d sql:/var/lib/zabbix/.pki/nssdb -L
6. Протестируйте Chrome.
Google Chrome использует базу сертификатов учётной записи того пользователя, который его запускает. Если у учётной записи пользователя нет доступного для записи домашнего каталога, настройте доступные для записи домашний каталог и каталоги XDG перед проведением тестирования.
Пример (замените google-chrome на chromium, если используется 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
Если конфигурация верна, команда возвращает HTML запрошенной страницы.
Если Chrome не доверяет сертификату, команда возвращает страницу ошибки сертификата с сообщениями, такими как NET::ERR_CERT_AUTHORITY_INVALID.
Устранение неполадок
| Ошибка | Возможная причина |
|---|---|
NET::ERR_CERT_AUTHORITY_INVALID |
Сертификат был импортирован в неправильный профиль пользователя, отсутствует сертификат корневого удостоверяющего центра или отсутствует промежуточный сертификат. |
NET::ERR_CERT_COMMON_NAME_INVALID |
Сертификат не соответствует имени хоста, указанному в URL браузера. |
NET::ERR_CERT_DATE_INVALID |
Срок действия сертификата истёк, сертификат еще не вступил в силу или системные часы настроены неверно. |
| Chrome по-прежнему показывает предупреждение о сертификате после импорта | Chrome использует другую базу данных NSS для текущего пользователя, либо неверно заданы флаги доверия сертификата. |