17 Доверие к TLS-сертификату Google Chrome

Обзор

На этой странице приведены шаги по настройке Zabbix и примеры конфигурации для использования Google Chrome с веб-интерфейсом Zabbix или конечными точками zabbix-web-service, защищенными самоподписанным сертификатом или частным центром сертификации.

Эти инструкции предполагают, что целевой веб-сервер уже настроен для HTTPS. Для настройки TLS на веб-интерфейсе Zabbix см. Безопасное подключение к веб-интерфейсу.

Конфигурация

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.

Устранение неполадок

Error Possible cause
NET::ERR_CERT_AUTHORITY_INVALID Сертификат был импортирован в неверный профиль пользователя, отсутствует сертификат корневого центра сертификации или отсутствует промежуточный сертификат.
NET::ERR_CERT_COMMON_NAME_INVALID Сертификат не соответствует имени хоста, указанному в URL браузера.
NET::ERR_CERT_DATE_INVALID Срок действия сертификата истек, он еще не вступил в силу или системные часы настроены неверно.
Chrome still shows a certificate warning after import Chrome использует другую базу данных NSS для текущего пользователя, либо флаги доверия сертификата указаны неверно.