ERR_SSL_PROTOCOL_ERROR: Como Corrigir (Chrome, Edge, Todos os Navegadores)

O Que É ERR_SSL_PROTOCOL_ERROR?
ERR_SSL_PROTOCOL_ERROR é um erro do navegador que ocorre quando o handshake SSL/TLS entre o seu navegador e o servidor web falha. O navegador não consegue estabelecer uma conexão criptografada segura, então bloqueia a página inteiramente para proteger você de transmitir dados por um canal inseguro.
Toda conexão HTTPS começa com um handshake TLS — uma negociação onde o navegador e o servidor concordam em um protocolo de criptografia (TLS 1.2 ou 1.3), trocam certificados e verificam a identidade um do outro. ERR_SSL_PROTOCOL_ERROR significa que essa negociação falhou antes de ser concluída.
O erro não é um código de status HTTP do servidor — ele acontece dentro do seu navegador antes de qualquer requisição HTTP ser enviada. O código de erro interno do Chromium é net::ERR_SSL_PROTOCOL_ERROR (código de erro -107), definido no código-fonte do Chromium como uma falha ao negociar um conjunto aceitável de parâmetros de segurança.
Como o ERR_SSL_PROTOCOL_ERROR Aparece
O Chrome e outros navegadores baseados no Chromium exibem esse erro como um aviso de página inteira com a mensagem "Este site não pode fornecer uma conexão segura." Abaixo, você verá o código de erro específico. Veja as variações mais comuns que você pode encontrar.
ERR_SSL_PROTOCOL_ERROR — o código de erro padrão na barra de endereço do Chrome
net::ERR_SSL_PROTOCOL_ERROR — o código de erro interno completo exibido no console do DevTools do Chrome
Este site não pode fornecer uma conexão segura — a mensagem principal que aparece para o usuário no Chrome
[domínio] enviou uma resposta inválida — o texto de erro detalhado que o Chrome exibe abaixo da mensagem principal
ERR_SSL_PROTOCOL_ERROR em todos os navegadores — quando o erro aparece simultaneamente no Chrome, Edge, Brave e Opera (indica um problema no servidor ou no sistema, não um bug de um navegador específico)
O Que Causa o ERR_SSL_PROTOCOL_ERROR?
Esse erro tem causas tanto do lado do cliente (seu dispositivo) quanto do servidor (o site). Identificar de qual lado está o problema é o primeiro passo para resolvê-lo. Se o erro aparece em todos os sites, o problema está do seu lado. Se aparece apenas em um site específico, provavelmente é um problema no servidor.
Data/hora do sistema incorreta — A causa #1 do lado do usuário. Certificados SSL são sensíveis ao tempo — se o relógio do seu computador estiver errado por apenas alguns minutos, a validação do certificado falha e o handshake TLS é interrompido.
Certificado SSL expirado ou inválido — O certificado SSL do site expirou, é autoassinado ou foi emitido para um domínio diferente. Você pode verificar qualquer certificado instantaneamente com nosso Verificador SSL.
Protocolo TLS desatualizado — O servidor suporta apenas protocolos obsoletos (SSL 3.0, TLS 1.0, TLS 1.1) que navegadores modernos se recusam a usar. Chrome, Edge e Firefox abandonaram o suporte ao TLS 1.0/1.1 em 2020.
Estado SSL do navegador corrompido — Seu navegador armazenou em cache dados antigos de sessão SSL, preferências HSTS ou informações de certificado que conflitam com a tentativa de conexão atual.
Conflito com o protocolo QUIC — O protocolo experimental QUIC (HTTP/3) do Chrome pode às vezes interferir na negociação TLS em servidores que não o suportam adequadamente.
Varredura SSL/HTTPS do antivírus — Softwares de segurança que interceptam tráfego HTTPS (Avast, Kaspersky, Bitdefender, ESET) podem quebrar o handshake TLS ao inserir seu próprio certificado na conexão.
Cadeia de certificados incompleta — O servidor envia seu certificado SSL, mas não os certificados intermediários necessários para verificar a cadeia de confiança até a autoridade certificadora raiz.
Interferência de VPN ou proxy — VPNs e proxies corporativos que inspecionam tráfego HTTPS podem corromper o handshake TLS, especialmente ao alternar entre redes.
Extensões do navegador — Extensões de privacidade, bloqueadores de anúncios e complementos de segurança que modificam requisições HTTPS podem interferir no handshake SSL.
Firewall bloqueando a porta 443 — Um firewall de rede ou roteador está bloqueando a porta padrão HTTPS (443), impedindo que o handshake TLS seja concluído.
Como Corrigir o ERR_SSL_PROTOCOL_ERROR (Para Usuários)
Se você encontrar esse erro enquanto navega, comece pelas soluções mais simples. A maioria dos casos é resolvida pelas três primeiras correções abaixo.
Correção 1: Verifique a Data e Hora do Sistema
Um relógio do sistema incorreto é a causa mais comum do ERR_SSL_PROTOCOL_ERROR. Certificados SSL possuem um período de validade (datas "Não Antes" / "Não Depois"), e se a hora do seu sistema estiver fora dessa faixa, o handshake falha. Mesmo uma diferença de poucos minutos pode causar problemas com a validação rigorosa de certificados.
Certifique-se de que seu computador está configurado para sincronizar o horário automaticamente.
Windows: Configurações → Hora e Idioma → Data e Hora → Ative "Definir hora automaticamente" e "Definir fuso horário automaticamente"
Mac: Ajustes do Sistema → Geral → Data e Hora → Ative "Definir data e hora automaticamente"
Linux: Execute
sudo timedatectl set-ntp truepara ativar a sincronização NTP
Correção 2: Limpar o Estado SSL (Windows)
O Windows mantém seu próprio cache de certificados SSL separado do navegador. Entradas obsoletas ou corrompidas nesse cache podem causar ERR_SSL_PROTOCOL_ERROR persistente mesmo após limpar o cache do navegador.
Para limpar o estado SSL no Windows: abra as Opções de Internet (pesquise no menu Iniciar ou digite inetcpl.cpl na caixa de diálogo Executar) → clique na aba Conteúdo → clique em Limpar estado SSL → clique OK. Em seguida, reinicie seu navegador.
Correção 3: Limpar Cache e Cookies do Navegador
Dados em cache corrompidos ou entradas HSTS (HTTP Strict Transport Security) obsoletas podem forçar seu navegador a tentar conexões com parâmetros desatualizados, disparando o erro de protocolo SSL.
Passo 1: Abra as Configurações do Chrome → Privacidade e Segurança → Limpar dados de navegação (ou pressione
Ctrl+Shift+Delete)Passo 2: Mude para a aba Avançado
Passo 3: Defina o intervalo de tempo para Todo o período
Passo 4: Marque Imagens e arquivos em cache, Cookies e outros dados de sites e Dados de apps hospedados
Passo 5: Clique em Limpar dados e reinicie o Chrome
Para um site específico, você também pode limpar apenas os dados daquele site: vá em chrome://settings/content/all → pesquise o domínio → clique no ícone de lixeira.
Correção 4: Desativar o Protocolo QUIC
O Chrome usa o protocolo QUIC (HTTP/3 sobre UDP) por padrão para conexões mais rápidas. No entanto, alguns servidores, firewalls e equipamentos de rede não lidam corretamente com o QUIC, o que pode causar falhas no handshake SSL. Desativar o QUIC força o Chrome a usar conexões TLS padrão baseadas em TCP.
Passo 1: Digite
chrome://flags/#enable-quicna barra de endereçoPasso 2: Encontre Experimental QUIC protocol
Passo 3: Mude de Default para Disabled
Passo 4: Clique em Relaunch para reiniciar o Chrome
Se o erro desaparecer após desativar o QUIC, o problema está na implementação HTTP/3 do servidor ou na sua rede bloqueando a porta UDP 443. Você pode deixar o QUIC desativado sem efeitos negativos — as páginas carregarão via HTTPS padrão (HTTP/2 sobre TCP).
Correção 5: Desativar Extensões do Navegador
Extensões que interceptam ou modificam o tráfego web — bloqueadores de anúncios, extensões de VPN, escudos de privacidade e HTTPS Everywhere — podem interferir no handshake TLS. Algumas extensões injetam seus próprios certificados ou modificam cabeçalhos de requisição de maneiras que quebram a negociação SSL.
Vá em chrome://extensions/, desative todas as extensões e recarregue a página. Se o erro desaparecer, reative as extensões uma a uma para encontrar a causadora. Os maiores responsáveis costumam ser: uBlock Origin (raramente), Avast Online Security, Norton Safe Web e HTTPS Everywhere.
Correção 6: Desativar a Varredura SSL/HTTPS do Antivírus
Muitos programas antivírus (Avast, Kaspersky, Bitdefender, ESET, Norton) incluem um recurso de "varredura HTTPS" ou "inspeção SSL" que intercepta conexões criptografadas agindo como um proxy intermediário. Isso pode quebrar handshakes TLS, especialmente com sites que usam fixação de certificados ou recursos mais recentes do TLS 1.3.
Procure por configurações chamadas Web Shield, HTTPS Scanning, SSL Scanning ou Verificação de conexões criptografadas no seu antivírus e desative temporariamente. Se o erro for resolvido, você pode adicionar o domínio afetado à lista de exclusão do seu antivírus.
Correção 7: Atualize Seu Navegador
Versões antigas do navegador podem não suportar os protocolos TLS ou conjuntos de cifras exigidos por sites modernos. O Chrome atualiza regularmente seus requisitos de segurança — por exemplo, o Chrome 98 abandonou completamente o suporte ao TLS 1.0 e 1.1.
Atualize o Chrome: vá em chrome://settings/help ou Menu → Ajuda → Sobre o Google Chrome. O Chrome baixa atualizações automaticamente, mas requer uma reinicialização para aplicá-las. Para o Edge: edge://settings/help. Para o Firefox: Menu → Ajuda → Sobre o Firefox.
Correção 8: Limpar o Cache DNS
Registros DNS obsoletos podem direcionar seu navegador para o servidor errado ou um endereço IP desatualizado que não possui mais um certificado SSL válido. Limpar o cache DNS força uma nova consulta DNS.
# Windows (Command Prompt as Admin)
ipconfig /flushdns
# macOS
sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder
# Linux
sudo systemd-resolve --flush-caches
# Chrome internal DNS cache
# Visit chrome://net-internals/#dns → Click "Clear host cache"Após limpar o cache, verifique se o domínio resolve para o IP correto usando a ferramenta de Consulta DNS do DNS Robot. Se o endereço IP parecer errado, o site pode ter mudado de provedor de hospedagem e o DNS ainda não propagou totalmente.
Correção 9: Tente o Modo Anônimo / Navegação Privada
O modo anônimo inicia com um estado limpo do navegador — sem dados em cache, sem cookies, sem extensões (a menos que você as tenha permitido explicitamente no modo anônimo). Se o site carregar no modo anônimo mas não no modo normal, o problema é causado por uma extensão do navegador, dados em cache ou um perfil de navegador corrompido.
Abra uma janela anônima: Ctrl+Shift+N (Chrome/Edge) ou Ctrl+Shift+P (Firefox). Navegue até o mesmo site. Se carregar, limpe o cache do navegador (Correção 3) ou verifique as extensões (Correção 5).
Correção 10: Desativar VPN ou Proxy
VPNs e proxies HTTP ficam entre o seu navegador e o servidor web. Algumas VPNs inspecionam tráfego HTTPS, injetam seus próprios certificados ou roteiam conexões por servidores com SSL mal configurado. Proxies corporativos frequentemente usam interceptação SSL (semelhante à varredura HTTPS do antivírus) que pode quebrar handshakes TLS.
Desconecte temporariamente sua VPN e tente carregar o site. Se funcionar sem a VPN, o problema está na forma como sua VPN lida com conexões SSL. Tente um servidor VPN diferente ou entre em contato com seu provedor de VPN.
Correção 11: Redefinir Configurações de Rede (Último Recurso)
Se nada mais funcionar, redefina sua pilha de rede. Isso limpa todas as configurações de rede personalizadas e retorna tudo ao padrão — incluindo configurações de DNS, configurações de proxy e conexões de socket.
# Windows (Command Prompt as Admin)
netsh winsock reset
netsh int ip reset
ipconfig /release
ipconfig /renew
ipconfig /flushdns
# Then restart your computer
# macOS — reset DNS settings
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
# Linux — restart NetworkManager
sudo systemctl restart NetworkManagerComo Corrigir o ERR_SSL_PROTOCOL_ERROR (Para Donos de Sites)
Se vários usuários relatam ERR_SSL_PROTOCOL_ERROR no seu site, o problema está no servidor. As causas mais comuns no servidor são certificados expirados, certificados intermediários ausentes e configurações TLS desatualizadas.
Verifique Seu Certificado SSL
O primeiro passo é verificar se seu certificado SSL é válido, está corretamente instalado e não expirou. Use o Verificador SSL do DNS Robot para verificar instantaneamente o status do certificado, data de expiração, emissor e cadeia de certificados.
Problemas comuns de certificado que causam ERR_SSL_PROTOCOL_ERROR:
Certificado expirado — Certificados do Let's Encrypt expiram a cada 90 dias. Se a renovação automática falhou (cron do certbot não rodando, desafio DNS quebrado), seu certificado expira silenciosamente.
Domínio errado — O certificado foi emitido para
example.com, mas o site é servido emwww.example.com(ou vice-versa). O certificado deve corresponder ao domínio exato ou incluir um curinga (*.example.com).Certificado autoassinado — Certificados de desenvolvimento não são confiáveis pelos navegadores em produção.
Certificado revogado — A autoridade certificadora revogou o certificado (por comprometimento de chave, emissão incorreta ou mudança de titularidade do domínio).
# Check certificate from command line
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -dates -subject -issuer
# Check certificate chain completeness
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | grep -E "(depth|verify)"
# Renew Let's Encrypt certificate
sudo certbot renew --force-renewalAtive o TLS 1.2 e TLS 1.3
Todos os navegadores modernos exigem pelo menos TLS 1.2. Se o seu servidor suporta apenas TLS 1.0 ou 1.1, os navegadores se recusarão a conectar e exibirão ERR_SSL_PROTOCOL_ERROR. TLS 1.3 é o padrão mais recente e significativamente mais rápido que o TLS 1.2 — ative ambos para máxima compatibilidade e desempenho.
# Nginx — ssl_protocols in nginx.conf or site config
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
# Apache — in httpd.conf or ssl.conf
SSLProtocol -all +TLSv1.2 +TLSv1.3
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
SSLHonorCipherOrder onApós atualizar sua configuração TLS, reinicie o servidor web (sudo systemctl restart nginx ou sudo systemctl restart apache2) e teste com o Verificador SSL do DNS Robot para verificar se os protocolos estão ativos.
Instale a Cadeia Completa de Certificados
Uma cadeia de certificados incompleta é uma causa comum, mas difícil de diagnosticar, do ERR_SSL_PROTOCOL_ERROR. Seu servidor deve enviar não apenas o seu certificado SSL, mas também os certificados intermediários que conectam seu certificado à autoridade certificadora raiz confiável. Sem eles, alguns navegadores e dispositivos não conseguem verificar o certificado.
A maioria das autoridades certificadoras fornece um arquivo "CA bundle" ou "full chain". Para o Let's Encrypt, use fullchain.pem (não apenas cert.pem). Para outras CAs, baixe o certificado intermediário da documentação delas e concatene-o com o seu certificado.
# Nginx — use fullchain, not just cert
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
# Apache
SSLCertificateFile /etc/letsencrypt/live/yourdomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain.com/privkey.pemVerifique a Configuração HSTS
HSTS (HTTP Strict Transport Security) instrui os navegadores a sempre usar HTTPS para o seu domínio. Se a sua política HSTS tem um max-age longo e seu certificado SSL depois quebra, os navegadores se recusarão a conectar — eles não podem voltar para HTTP, e o HTTPS quebrado dispara ERR_SSL_PROTOCOL_ERROR.
Verifique seu cabeçalho HSTS com a ferramenta de Cabeçalhos HTTP do DNS Robot. Se você definiu um max-age muito longo (como 2 anos) e seu certificado expirou, os usuários que visitaram seu site anteriormente ficam presos ao HTTPS sem alternativa. Para resolver, primeiro corrija seu certificado SSL, e então os navegadores conectarão normalmente.
Verifique a Configuração do Servidor
Servidores web mal configurados podem causar ERR_SSL_PROTOCOL_ERROR mesmo com um certificado válido. Erros comuns de configuração do servidor incluem:
Porta errada — SSL/TLS deve estar na porta 443. Se o seu servidor escuta em uma porta diferente, os navegadores podem falhar no handshake.
HTTP/HTTPS misturado — Servir alguns recursos via HTTP em uma página HTTPS dispara avisos de conteúdo misto e pode quebrar o handshake para sub-recursos.
SNI (Server Name Indication) não configurado — Se vários domínios compartilham um endereço IP, o servidor deve suportar SNI para servir o certificado correto para cada domínio.
Incompatibilidade de conjuntos de cifras — O servidor suporta apenas conjuntos de cifras que o navegador não aceita. Use cifras modernas e fortes como AES-GCM e ChaCha20.
Use o Verificador de Cabeçalhos HTTP do DNS Robot para inspecionar os cabeçalhos de resposta do seu servidor e verificar se sua configuração SSL está enviando os cabeçalhos corretos.
ERR_SSL_PROTOCOL_ERROR no Android
Usuários Android encontram ERR_SSL_PROTOCOL_ERROR tanto no Chrome para Android quanto em apps baseados em WebView. As correções diferem um pouco do desktop porque o Android gerencia certificados e configurações de rede de maneira diferente.
Verifique data e hora — Configurações → Sistema → Data e hora → Ative "Data e hora automáticas" e "Fuso horário automático"
Limpe os dados do Chrome — Configurações → Apps → Chrome → Armazenamento → Limpar Cache (depois Limpar Dados se o cache não resolver)
Atualize o Chrome — Abra a Google Play Store → Meus Apps → Atualize o Chrome para a versão mais recente
Limpe credenciais de rede — Configurações → Segurança → Limpar credenciais (isso remove todos os certificados instalados pelo usuário)
Redefina as configurações de rede — Configurações → Sistema → Opções de redefinição → Redefinir Wi-Fi, rede móvel e Bluetooth
Para apps WebView — Desenvolvedores devem garantir que
android:usesCleartextTraffic="false"está definido e que a configuração de segurança de rede confia nas autoridades certificadoras corretas
ERR_SSL_PROTOCOL_ERROR em Outros Navegadores
ERR_SSL_PROTOCOL_ERROR é um código de erro específico do Chromium. Outros navegadores exibem mensagens de erro diferentes para a mesma falha de handshake SSL.
| Navegador | Mensagem de Erro | Código de Erro |
|---|---|---|
| Chrome / Edge / Brave / Opera | Este site não pode fornecer uma conexão segura | ERR_SSL_PROTOCOL_ERROR |
| Firefox | Falha na Conexão Segura | SSL_ERROR_RX_MALFORMED_HANDSHAKE |
| Safari | O Safari não consegue estabelecer uma conexão segura | Nenhum código específico exibido |
| Internet Explorer | Esta página não pode ser exibida | Ative TLS 1.0, 1.1, 1.2 nas Opções de Internet |
Se o erro aparece em todos os navegadores simultaneamente, o problema é do sistema (data/hora errada, antivírus, rede) ou do servidor (certificado expirado, configuração TLS incorreta). Se aparece em apenas um navegador, o problema é específico daquele navegador — tente limpar o cache e o estado SSL dele.
ERR_SSL_PROTOCOL_ERROR no Localhost (Desenvolvedores)
Desenvolvedores frequentemente encontram localhost sent an invalid response. ERR_SSL_PROTOCOL_ERROR ao rodar servidores de desenvolvimento locais. Isso acontece porque seu navegador espera um certificado SSL válido para conexões HTTPS, mas o localhost usa um certificado autoassinado ou nenhum certificado.
Use HTTP para desenvolvimento local — Mude
https://localhost:3000parahttp://localhost:3000a menos que você precise especificamente de HTTPSGere um certificado local — Use mkcert para criar certificados SSL confiáveis localmente:
mkcert -install && mkcert localhost 127.0.0.1Node.js — Defina
NODE_TLS_REJECT_UNAUTHORIZED=0apenas para desenvolvimento (nunca em produção)Flag do Chrome — Digite
chrome://flags/#allow-insecure-localhoste ative "Allow invalid certificates for resources loaded from localhost"Next.js / Vite / Webpack — Esses frameworks suportam flags
--httpsque geram automaticamente certificados de desenvolvimento
Códigos de Erro SSL/TLS Relacionados
O Chrome possui vários códigos de erro relacionados a SSL. Todos indicam diferentes problemas de handshake TLS ou de certificado.
| Código de Erro | O Que Significa | Causa Comum |
|---|---|---|
| ERR_SSL_PROTOCOL_ERROR | O handshake TLS falhou completamente | Data/hora errada, incompatibilidade de versão TLS, conflito QUIC |
| ERR_SSL_VERSION_OR_CIPHER_MISMATCH | Nenhuma versão TLS ou conjunto de cifras em comum | Servidor usa TLS 1.0/1.1 obsoleto, cifras fracas |
| ERR_CERT_AUTHORITY_INVALID | Certificado não assinado por uma CA confiável | Certificado autoassinado, intermediário ausente, raiz expirada |
| ERR_CERT_DATE_INVALID | Certificado expirado ou ainda não válido | Certificado expirado, relógio do sistema incorreto |
| ERR_CERT_COMMON_NAME_INVALID | Domínio do certificado não corresponde à URL | Certificado para example.com, site em www.example.com |
| ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN | Validação de fixação de certificado falhou | Site usa HPKP e o certificado mudou |
Para todos os erros SSL, você pode diagnosticar rapidamente o problema usando o Verificador SSL do DNS Robot — ele mostra o status do certificado, completude da cadeia, versões TLS suportadas e data de expiração em uma única verificação.
Verifique Seu Certificado SSL Agora
Use o Verificador SSL grátis do DNS Robot para verificar instantaneamente o status do seu certificado, data de expiração, cadeia de certificados e suporte a protocolos TLS. Diagnostique o ERR_SSL_PROTOCOL_ERROR em segundos.
Try SSL CheckerFrequently Asked Questions
ERR_SSL_PROTOCOL_ERROR significa que seu navegador não conseguiu estabelecer uma conexão segura TLS/SSL com o site. O handshake TLS — onde o navegador e o servidor negociam a criptografia — falhou antes de ser concluído. É um erro do lado do cliente, não um código de status HTTP do servidor.