Poupe até 53% em Servidores VPS, escolha agora. Oferta limitada.

Solucionar erro NET::ERR_CERT_AUTHORITY_INVALID no Chrome

17 min de leitura  ·  Guia técnico

Solucionar erro NET::ERR_CERT_AUTHORITY_INVALID no Chrome exige validar a cadeia do certificado TLS, corrigir a configuração do servidor para usar o arquivo completo da cadeia, renovar o certificado se ele estiver expirado e reiniciar o serviço web. Na maioria dos casos, o problema é resolvido ao substituir certificados autoassinados, corrigir o uso de fullchain.pem e confirmar a confiança da CA no sistema cliente.

  1. Inspecione o certificado com openssl s_client para identificar a causa real.
  2. Confirme se Nginx ou Apache estão servindo o fullchain.pem.
  3. Renove o certificado Let's Encrypt se ele estiver expirado.
  4. Reinicie o servidor web e teste novamente a conexão HTTPS.
  5. Verifique se o problema está no cliente quando o erro afetar apenas alguns usuários.

Pré-requisitos para solucionar o erro NET::ERR_CERT_AUTHORITY_INVALID

  • Acesso SSH ao servidor (root ou usuário com sudo) — Ubuntu 24.04, Debian 12/13 ou AlmaLinux 9/10.
  • Certbot instalado (versão 2.x ou superior) para certificados Let's Encrypt.
  • Nginx 1.24+ ou Apache 2.4+ configurado como servidor web.
  • Domínio com DNS apontando corretamente para o IP do servidor (propagação concluída).
  • Porta 443 aberta no firewall (UFW, nftables ou CSF).
  • Acesso ao painel de hospedagem (cPanel ou similar) se o certificado for gerenciado por painel.
  • Ferramenta openssl disponível no servidor (padrão na maioria das distribuições).

Como identificar a causa real do erro NET::ERR_CERT_AUTHORITY_INVALID no Chrome

Antes de aplicar qualquer correção, é essencial entender por que o Chrome está rejeitando o certificado. O erro pode ter origens distintas e cada uma exige uma abordagem diferente. Ao clicar em "Não seguro" na barra de endereços do Chrome, você verá detalhes como "O certificado não é válido" ou "Emissor desconhecido".

No servidor, use o openssl para inspecionar o certificado em produção:

openssl s_client -connect seudominio.com.br:443 -servername seudominio.com.br

Ao rodar este comando, você verá a cadeia de certificados retornada pelo servidor. Procure pelas linhas Certificate chain e Verify return code. Um resultado saudável mostra:

Certificate chain
 0 s:CN = seudominio.com.br
   i:C = US, O = Let's Encrypt, CN = R11
 1 s:C = US, O = Let's Encrypt, CN = R11
   i:C = US, O = Internet Security Research Group, CN = ISRG Root X1
...
Verify return code: 0 (ok)

Se o Verify return code for diferente de 0 (ok), o problema está confirmado no servidor. Os códigos mais comuns são:

  • 18 (self signed certificate): certificado autoassinado em uso.
  • 20 (unable to get local issuer certificate): cadeia intermediária incompleta.
  • 10 (certificate has expired): certificado expirado.
  • 21 (unable to verify the first certificate): CA raiz não reconhecida.

Verifique também a data de expiração diretamente:

echo | openssl s_client -connect seudominio.com.br:443 2>/dev/null | openssl x509 -noout -dates
notBefore=Jan  1 00:00:00 2025 GMT
notAfter=Apr  1 00:00:00 2025 GMT

Se notAfter estiver no passado, o certificado expirou e precisa ser renovado imediatamente.

Corrigir cadeia de certificados incompleta no Nginx

A cadeia intermediária incompleta é uma das causas mais frequentes do erro de autoridade inválida, especialmente em servidores configurados manualmente. O Nginx precisa que o arquivo ssl_certificate contenha tanto o certificado do domínio quanto os certificados intermediários da CA, nessa ordem.

Se você usa Let's Encrypt com Certbot, o arquivo correto já é o fullchain.pem. Verifique sua configuração:

grep -n "ssl_certificate" /etc/nginx/sites-enabled/seudominio.com.br
ssl_certificate /etc/letsencrypt/live/seudominio.com.br/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/seudominio.com.br/privkey.pem;

Se a linha apontar para cert.pem em vez de fullchain.pem, esse é o problema. Edite o arquivo de configuração:

nano /etc/nginx/sites-enabled/seudominio.com.br

Localize o bloco server com SSL e corrija:

server {
    listen 443 ssl;
    server_name seudominio.com.br www.seudominio.com.br;

    ssl_certificate /etc/letsencrypt/live/seudominio.com.br/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/seudominio.com.br/privkey.pem;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ...
}

Valide a configuração antes de reiniciar:

nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Reinicie o Nginx para aplicar:

systemctl restart nginx

Para validar a cadeia completa localmente:

openssl verify -CAfile /etc/ssl/certs/ca-certificates.crt /etc/letsencrypt/live/seudominio.com.br/fullchain.pem
/etc/letsencrypt/live/seudominio.com.br/fullchain.pem: OK

Em algumas distribuições, o caminho do arquivo de CAs do sistema pode variar. Se necessário, valide a cadeia usando o bundle da própria emissão, como chain.pem, ou confirme primeiro qual é o caminho correto do repositório de CAs no sistema.

Corrigir cadeia de certificados incompleta no Apache

No Apache, a configuração de certificado SSL usa diretivas diferentes do Nginx, mas o princípio é o mesmo: o arquivo de certificado deve incluir a cadeia completa. A diretiva SSLCertificateChainFile foi descontinuada no Apache 2.4.8 — a forma correta é incluir tudo em SSLCertificateFile.

Verifique o VirtualHost SSL:

grep -rn "SSLCertificate" /etc/apache2/sites-enabled/
SSLCertificateFile /etc/letsencrypt/live/seudominio.com.br/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/seudominio.com.br/privkey.pem

Se encontrar SSLCertificateChainFile ainda configurado, remova essa linha e garanta que SSLCertificateFile aponte para fullchain.pem. Exemplo de VirtualHost correto:

<VirtualHost *:443>
    ServerName seudominio.com.br
    ServerAlias www.seudominio.com.br

    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/seudominio.com.br/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/seudominio.com.br/privkey.pem

    SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
    SSLCipherSuite HIGH:!aNULL:!MD5
</VirtualHost>

Teste e reinicie o Apache:

apachectl configtest && systemctl restart apache2
Syntax OK

Se você usa cPanel para gerenciar SSL, consulte o artigo Lista Prática: 5 Vantagens de ter SSL gratuito no seu site para entender como o SSL é gerenciado no ambiente de hospedagem compartilhada.

Renovar certificado Let's Encrypt expirado com Certbot

Quando o certificado TLS expira, o Chrome exibe imediatamente o erro de autoridade inválida. A renovação automática do Let's Encrypt via Certbot normalmente ocorre antes da expiração, mas pode falhar por problemas de DNS, firewall ou configuração incorreta do cron.

Para forçar a renovação imediata de todos os certificados gerenciados pelo Certbot:

certbot renew --force-renewal
Saving debug log to /var/log/letsencrypt/letsencrypt.log
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/seudominio.com.br.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Successfully renewed certificate for seudominio.com.br

Se quiser renovar apenas um domínio específico:

certbot renew --cert-name seudominio.com.br --force-renewal

Após a renovação, reinicie o servidor web:

# Para Nginx:
systemctl restart nginx

# Para Apache:
systemctl restart apache2

Verifique se a renovação automática está funcionando corretamente:

systemctl status certbot.timer
● certbot.timer - Run certbot twice daily
     Loaded: loaded (/lib/systemd/system/certbot.timer; enabled; vendor preset: enabled)
     Active: active (waiting)

Se o timer não estiver ativo, habilite-o:

systemctl enable --now certbot.timer

Para verificar quando o próximo ciclo de renovação ocorrerá:

certbot renew --dry-run

O --dry-run simula a renovação sem alterar nada, permitindo identificar problemas antes que o certificado expire de verdade. Também é recomendável verificar se o redirecionamento HTTP para HTTPS está configurado corretamente — veja o artigo Como redirecionar um site http para https? para garantir que o tráfego seja sempre servido com SSL válido.

Substituir certificado autoassinado por certificado confiável

Ambientes de desenvolvimento ou servidores configurados rapidamente frequentemente usam certificados autoassinados, que causam o NET::ERR_CERT_AUTHORITY_INVALID em qualquer navegador moderno. Para produção, o certificado deve ser emitido por uma CA reconhecida.

Para emitir um certificado Let's Encrypt gratuito com Certbot no Nginx (Debian 13 ou Ubuntu 24.04):

apt update && apt install -y certbot python3-certbot-nginx
certbot --nginx -d seudominio.com.br -d www.seudominio.com.br

O Certbot irá:

  1. Verificar a propriedade do domínio via desafio HTTP-01.
  2. Emitir o certificado e os intermediários.
  3. Modificar automaticamente a configuração do Nginx para usar fullchain.pem.
  4. Configurar o redirecionamento HTTP → HTTPS.

Para Apache no AlmaLinux 10:

dnf install -y certbot python3-certbot-apache
certbot --apache -d seudominio.com.br -d www.seudominio.com.br

Atenção: certifique-se de que a porta 80 está aberta no firewall durante o processo de validação do Certbot. Após a emissão, você pode bloquear a porta 80 novamente se desejar, mas mantenha o redirecionamento configurado no servidor web.

Após a emissão, confirme que o Chrome não exibe mais o erro acessando o site em uma aba anônima (Ctrl+Shift+N), que ignora caches de certificados anteriores.

Problemas comuns e como resolver

Sintoma: erro persiste após renovação do certificado

Causa: O servidor web não foi reiniciado após a renovação, portanto ainda está servindo o certificado antigo em memória.
Solução: Execute systemctl restart nginx ou systemctl restart apache2 imediatamente após a renovação. Para evitar que isso aconteça no futuro, adicione um hook de deploy ao Certbot: edite /etc/letsencrypt/renewal/seudominio.com.br.conf e adicione deploy_hook = systemctl reload nginx na seção [renewalparams].

Sintoma: erro aparece apenas em dispositivos móveis ou para alguns usuários

Causa: O dispositivo do usuário tem o relógio do sistema desatualizado, uma CA raiz desatualizada no sistema operacional (comum em Android antigo) ou um antivírus que intercepta conexões TLS e injeta seu próprio certificado.
Solução: Primeiro, confirme que o certificado está válido no servidor com openssl s_client -connect seudominio.com.br:443. Se o servidor estiver correto, oriente o usuário a verificar a data/hora do dispositivo, atualizar o sistema operacional ou desativar temporariamente a inspeção SSL do antivírus para testar.

Sintoma: NET::ERR_CERT_AUTHORITY_INVALID em ambiente local (localhost ou IP)

Causa: Certificados Let's Encrypt não podem ser emitidos para endereços IP ou localhost. O servidor está usando um certificado autoassinado gerado localmente.
Solução: Para desenvolvimento local, use ferramentas como mkcert para gerar certificados confiáveis localmente. Execute mkcert -install && mkcert localhost 127.0.0.1 e configure o servidor web para usar os arquivos gerados. O mkcert instala uma CA local no sistema, fazendo o Chrome confiar nos certificados gerados por ela.

Sintoma: erro de cadeia mesmo com fullchain.pem configurado

Causa: O arquivo fullchain.pem pode estar corrompido, vazio ou com permissões incorretas que impedem o servidor web de lê-lo.
Solução: Verifique o conteúdo e as permissões: ls -la /etc/letsencrypt/live/seudominio.com.br/ e openssl x509 -in /etc/letsencrypt/live/seudominio.com.br/fullchain.pem -noout -text | head -20. Confirme também se o arquivo realmente contém o certificado do domínio seguido dos intermediários, por exemplo com grep -c "BEGIN CERTIFICATE" /etc/letsencrypt/live/seudominio.com.br/fullchain.pem. O arquivo deve ser legível pelo usuário do servidor web. Se estiver corrompido, force a renovação com certbot renew --force-renewal.

Sintoma: Certbot falha ao renovar com erro de validação DNS

Causa: O domínio não está apontando para o IP do servidor, ou a porta 80 está bloqueada no firewall, impedindo o desafio HTTP-01 do Let's Encrypt.
Solução: Verifique o DNS com dig +short seudominio.com.br A e confirme que retorna o IP correto do servidor. Verifique se a porta 80 está aberta: ufw status ou nft list ruleset | grep 80. Se usar Cloudflare, certifique-se de que o proxy (nuvem laranja) está desativado durante a renovação, ou use o desafio DNS-01 com o plugin do Cloudflare.

Perguntas frequentes sobre NET::ERR_CERT_AUTHORITY_INVALID

O que causa o erro NET::ERR_CERT_AUTHORITY_INVALID?

O erro ocorre quando o navegador não consegue verificar a cadeia de confiança do certificado TLS. As causas mais comuns são: certificado autoassinado, cadeia intermediária incompleta no servidor, certificado expirado ou emitido por uma CA não reconhecida pelo sistema operacional do cliente. Em todos os casos, o Chrome bloqueia o acesso para proteger o usuário de possíveis ataques man-in-the-middle.

Como renovar o certificado Let's Encrypt para corrigir esse erro?

Execute o comando certbot renew --force-renewal no servidor para forçar a renovação imediata. Após a renovação, reinicie o servidor web (Nginx ou Apache) para que o novo certificado seja carregado. Verifique a validade com openssl s_client -connect seudominio.com:443. Para evitar expirações futuras, confirme que o timer do Certbot está ativo com systemctl status certbot.timer.

O erro NET::ERR_CERT_AUTHORITY_INVALID aparece só para alguns usuários. Por quê?

Isso geralmente indica que o problema está no dispositivo do usuário, como um relógio do sistema desatualizado, uma CA raiz desatualizada no sistema operacional ou um antivírus que intercepta conexões TLS. Verifique se o certificado está válido no servidor antes de investigar o lado do cliente. Se o openssl s_client retornar Verify return code: 0 (ok), o servidor está correto e o problema é exclusivamente do dispositivo do usuário.

Certificado autoassinado causa esse erro?

Sim. Certificados autoassinados não são emitidos por uma Autoridade Certificadora (CA) reconhecida pelos navegadores, por isso o Chrome exibe NET::ERR_CERT_AUTHORITY_INVALID. Para produção, substitua por um certificado emitido por uma CA confiável, como Let's Encrypt, que é gratuito. Para ambientes de desenvolvimento local, use o mkcert para criar uma CA local confiável no seu sistema.

Como verificar se a cadeia de certificados está completa no Nginx?

No Nginx, o arquivo configurado em ssl_certificate deve conter o certificado do domínio seguido dos certificados intermediários — o fullchain.pem do Let's Encrypt já inclui tudo automaticamente. Use openssl verify -CAfile /etc/ssl/certs/ca-certificates.crt /etc/nginx/ssl/fullchain.pem para validar a cadeia completa. Se o resultado for OK, a cadeia está correta. Você também pode usar ferramentas online como o SSL Labs para uma verificação mais detalhada a partir de fora do servidor.

Conclusão

  • Diagnostique primeiro: use openssl s_client -connect seudominio.com.br:443 para identificar se o problema é cadeia incompleta, certificado expirado ou autoassinado antes de aplicar qualquer correção.
  • Use sempre fullchain.pem: tanto no Nginx quanto no Apache, configure ssl_certificate ou SSLCertificateFile para apontar para o fullchain.pem do Let's Encrypt, nunca para o cert.pem isolado.
  • Automatize a renovação: confirme que o certbot.timer está ativo e adicione um deploy_hook para reiniciar o servidor web automaticamente após cada renovação bem-sucedida.

Leia também

Precisa de ajuda com SSL e certificados no seu servidor?

Configurar e manter certificados TLS corretamente pode ser desafiador, especialmente em ambientes com múltiplos domínios ou configurações personalizadas. A AviraHost oferece hospedagem com SSL gerenciado e suporte técnico para ajudar a resolver erros de certificado sem complicação.

Conheça os planos de hospedagem da AviraHost com SSL incluso

  • 0 Os usuários acharam isso útil
  • SSL, certificado-TLS, Let's Encrypt, Chrome, AviraHost, Nginx, segurança
Esta resposta foi útil?

Artigos Relacionados

Como usar o Filezilla como software FTP da minha Hospedagem?

Como usar o Filezilla como software FTP da minha Hospedagem? O FileZilla é um dos mais populares...

Conectando remotamente ao MySQL - cPanel

Você pode permitir servidores externos a acessar suas bases de dados MySQL através do IP na lista...

Como redirecionar um site http para https?

Para redirecionar um site http para https, basta adicionar as linhas abaixo no seu arquivo...

Como acessar o painel de gerenciamento dos meus Serviços.

Para acessar o painel de gerenciamento do seu serviço basta seguir o passo á passo abaixo.   1....

Como gerenciar um domínio.

Adicione um domínio a sua conta, utilizando nosso painel de gerenciar domínios, Você pode...