17 Confiança no certificado TLS do Google Chrome

Visão geral

Esta página fornece etapas de configuração do Zabbix e exemplos de configuração para usar o Google Chrome com o frontend do Zabbix ou endpoints do zabbix-web-service protegidos por um certificado autoassinado ou por uma autoridade certificadora privada.

Estas instruções pressupõem que o servidor web de destino já esteja configurado para HTTPS. Para configurar TLS no frontend do Zabbix, consulte Conexão segura com o frontend.

Configuração

O Google Chrome no Linux usa um banco de dados de certificados NSS por usuário para certificados confiáveis. Para fazer com que o Chrome confie em um certificado autoassinado ou em uma autoridade certificadora privada, adicione os certificados necessários ao banco de dados NSS da conta de usuário que executa o Chrome.

1. Instale os pacotes necessários.

Para Debian/Ubuntu:

sudo apt install ca-certificates libnss3-tools

Para sistemas baseados em RHEL:

sudo dnf install ca-certificates nss-tools

Ou:

sudo yum install ca-certificates nss-tools

2. Prepare os arquivos de certificado.

Para cada certificado necessário: crie um arquivo .crt baseado em PEM para o certificado autoassinado, ou crie arquivos .crt separados baseados em PEM para o certificado da autoridade certificadora raiz e, se necessário, para cada certificado intermediário.

3. Crie o diretório do banco de dados NSS.

Use o diretório home do usuário que executa o Chrome.

Por exemplo:

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

Se o Chrome no sistema de destino usar um local diferente para o banco de dados NSS, use esse diretório em vez disso.

Certifique-se de que os arquivos de certificado possam ser lidos pelo usuário que executa o Google Chrome. Se necessário, copie-os para um local acessível a esse usuário.

4. Importe os certificados.

Se estiver usando um certificado autoassinado:

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

Se estiver usando uma autoridade certificadora privada, importe o certificado da autoridade certificadora raiz para o banco de dados:

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

Se forem usados certificados intermediários, importe cada um separadamente:

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 o banco de dados de certificados.

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

6. Teste o Chrome.

O Google Chrome usa o banco de dados de certificados da conta de usuário que o inicia. Se a conta de usuário não tiver um diretório home gravável, configure um home gravável e diretórios XDG antes de executar o teste.

Exemplo (substitua google-chrome por chromium se o Chromium for usado.):

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

Se a configuração estiver correta, o comando retornará o HTML da página solicitada.

Se o Chrome não confiar no certificado, o comando retornará uma página de erro de certificado contendo mensagens como NET::ERR_CERT_AUTHORITY_INVALID.

Solução de problemas

Error Possible cause
NET::ERR_CERT_AUTHORITY_INVALID O certificado foi importado para o perfil de usuário incorreto, o certificado da autoridade certificadora raiz está ausente ou um certificado intermediário está ausente.
NET::ERR_CERT_COMMON_NAME_INVALID O certificado não corresponde ao nome do host usado na URL do navegador.
NET::ERR_CERT_DATE_INVALID O certificado expirou, ainda não é válido ou o relógio do sistema está incorreto.
Chrome ainda exibe um aviso de certificado após a importação O Chrome está usando um banco de dados NSS diferente para o usuário atual, ou os sinalizadores de confiança do certificado estão incorretos.