17 Confianza en el certificado TLS de Google Chrome

Descripción general

Esta página proporciona pasos de configuración de Zabbix y ejemplos de configuración para usar Google Chrome con el frontend de Zabbix o con endpoints de zabbix-web-service protegidos por un certificado autofirmado o por una autoridad de certificación privada.

Estas instrucciones asumen que el servidor web de destino ya está configurado para HTTPS. Para configurar TLS en el frontend de Zabbix, consulte Secure connection to the frontend.

Configuración

Google Chrome en Linux usa una base de datos NSS de certificados por usuario para los certificados de confianza. Para que Chrome confíe en un certificado autofirmado o en una autoridad de certificación privada, agregue los certificados requeridos a la base de datos NSS de la cuenta de usuario que ejecuta Chrome.

1. Instale los paquetes requeridos.

Para Debian/Ubuntu:

sudo apt install ca-certificates libnss3-tools

Para sistemas basados en RHEL:

sudo dnf install ca-certificates nss-tools

O:

sudo yum install ca-certificates nss-tools

2. Prepare los archivos de certificado.

Para cada certificado necesario: cree un archivo .crt basado en PEM para el certificado autofirmado, o cree archivos .crt separados basados en PEM para el certificado de la autoridad de certificación raíz y, si es necesario, para cada certificado intermedio.

3. Cree el directorio de la base de datos NSS.

Use el directorio personal del usuario que ejecuta Chrome.

Por ejemplo:

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

Si Chrome en el sistema de destino usa una ubicación diferente para la base de datos NSS, use ese directorio en su lugar.

Asegúrese de que los archivos de certificado sean legibles por el usuario que ejecuta Google Chrome. Si es necesario, cópielos a una ubicación accesible para ese usuario.

4. Importe los certificados.

Si usa un certificado autofirmado:

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

Si usa una autoridad de certificación privada, importe el certificado de la autoridad de certificación raíz en la base de datos:

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

Si se usan certificados intermedios, importe cada uno por separado:

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

5. Verifique la base de datos de certificados.

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

6. Pruebe Chrome.

Google Chrome usa la base de datos de certificados de la cuenta de usuario que lo inicia. Si la cuenta de usuario no tiene un directorio personal escribible, configure un directorio personal y directorios XDG escribibles antes de ejecutar la prueba.

Ejemplo (reemplace google-chrome por chromium si se usa 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

Si la configuración es correcta, el comando devuelve el HTML de la página solicitada.

Si Chrome no confía en el certificado, el comando devuelve una página de error de certificado que contiene mensajes como NET::ERR_CERT_AUTHORITY_INVALID.

Solución de problemas

Error Posible causa
NET::ERR_CERT_AUTHORITY_INVALID El certificado se importó en el perfil de usuario incorrecto, falta el certificado de la autoridad certificadora raíz o falta un certificado intermedio.
NET::ERR_CERT_COMMON_NAME_INVALID El certificado no coincide con el nombre de host usado en la URL del navegador.
NET::ERR_CERT_DATE_INVALID El certificado ha caducado, aún no es válido o el reloj del sistema es incorrecto.
Chrome sigue mostrando una advertencia de certificado después de la importación Chrome está usando una base de datos NSS diferente para el usuario actual, o las marcas de confianza del certificado son incorrectas.