Pular para o conteúdo
ecdsa.com
Chrome, Edge and other Chromium browsersNavegadores

Mensagem de erro

net::ERR_CERT_AUTHORITY_INVALID

A tela de aviso mostra o código como “NET::ERR_CERT_AUTHORITY_INVALID”; ferramentas de automação (logs do Playwright, Puppeteer e Selenium) informam “net::ERR_CERT_AUTHORITY_INVALID”, que é o que nossa reprodução em modo headless imprime. O Edge e outros navegadores Chromium usam o mesmo código.

Chrome, Edge and other Chromium browsers — certificate error interstitial "Your connection is not private"

O que significa

O Chrome não conseguiu encadear o certificado do site até uma raiz em que confia, por isso bloqueia a página com a tela de aviso “Your connection is not private”. O certificado pode ser autoassinado, emitido por uma CA privada, apresentado sem o certificado intermediário ou substituído por algo que intercepta a conexão. O Chrome usa o repositório do sistema operacional no Windows e no macOS (e seu próprio Chrome Root Store para CAs públicas) e o banco de dados NSS no Linux.

Por que acontece

Como corrigir

  1. 1.

    Donos do site: verificar a cadeia servida

    Se apenas um certificado é enviado e o emissor dele é um intermediário, a configuração do servidor está incompleta.

    bash
    # Site owners: which certificates does the server send? (1 = intermediate missing)
    openssl s_client -connect www.example.com:443 -servername www.example.com -showcerts </dev/null 2>/dev/null \
      | grep -E '^ *[0-9]+ s:|^ *i:'
  2. 2.

    Donos do site: servir a cadeia completa

    Configure o servidor web com o arquivo da cadeia completa para que todos os clientes (não só o Chrome) consigam verificá-la.

    text
    # nginx: serve leaf + intermediates
    ssl_certificate     /etc/letsencrypt/live/www.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem;
  3. 3.

    Sites internos: instalar a raiz privada nos dispositivos gerenciados

    Distribua a raiz da empresa pelo gerenciamento de dispositivos ou pelo repositório do sistema operacional; no Linux, adicione-a ao banco de dados NSS que o Chrome lê.

    bash
    # Internal sites: install the company root on the client (Chrome uses the OS store on
    # Windows and macOS; on Linux, the NSS database in ~/.pki/nssdb)
    certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n corp-root -i corp-root-ca.pem
  4. 4.

    Usuários: ver quem emitiu o certificado antes de qualquer outra coisa

    O visualizador de certificados mostra o emissor. Clicar para ignorar o aviso (“Proceed to … (unsafe)”) só é recomendável em dispositivos seus conectados a redes em que você confia; em redes desconhecidas, isso entrega sua sessão a quem apresentou o certificado.

    text
    Click "Not secure" in the address bar → "Certificate details" and read the issuer.
    A company or security-vendor name on a public site = TLS inspection on your network.
    An unknown issuer on public Wi-Fi = do not proceed.

Erros relacionados

Ver toda a base de erros de assinatura