Base de Conhecimento

ERR_SSL_PROTOCOL_ERROR: o que é e como resolver

  • err_ssl_protocol_error, ssl, tls, https, nginx, certbot
  • Usuários acharam útil: 0

Entenda o ERR_SSL_PROTOCOL_ERROR, descubra se o problema é só seu e confira porta 443, certificado e protocolos no Nginx com comandos de diagnóstico.

Por Redação Eleven Host · @robson.direitodigital · 29 de outubro de 2026 · 8 min de leitura

Arte da Eleven Host: janela de terminal com o título: ERR_SSL_PROTOCOL_ERROR: o que é e como resolver

Capa da Redação Eleven Host para o guia: ERR_SSL_PROTOCOL_ERROR: o que é e como resolver Arte: Eleven Host

O ERR_SSL_PROTOCOL_ERROR aparece quando o navegador tenta abrir uma conexão segura (HTTPS) e a conversa de segurança com o servidor falha. Confira primeiro se o problema é só seu; se o site é seu, verifique a porta 443, o certificado e os protocolos.

Este guia separa o erro em dois caminhos: o que fazer como visitante e o que o dono do site precisa conferir no servidor. Os passos para o visitante vêm da ajuda do Chrome sobre erros de conexão parecidos, e os do dono usam a documentação do Nginx, do OpenSSL e do Certbot. Nos exemplos, o domínio é seudominio.com.br.

O que significa o ERR_SSL_PROTOCOL_ERROR

Uma conexão HTTPS começa com um aperto de mão de segurança entre o navegador e o servidor, o handshake TLS. Nele, os dois combinam como vão criptografar a conversa e o servidor apresenta o certificado. Quando essa etapa falha, ou o servidor responde num formato que o navegador não entende, aparece o erro de protocolo SSL.

Importante: a leitura acima é a explicação técnica do que acontece no handshake, e não uma definição da Google. Por isso este guia usa, para o visitante, as orientações que o Chrome dá para erros de segurança parecidos, e deixa claro quando isso é uma tentativa de teste, e não uma solução certa.

O erro tem mais de uma causa possível. O servidor pode estar entregando HTTP puro onde o navegador espera HTTPS, o certificado pode não estar configurado no bloco certo, ou o aparelho do visitante pode estar interferindo na conexão.

O problema é só com você?

Antes de mexer em uma configuração, descubra de onde vem o erro. Faça estes testes rápidos:

  • Outro aparelho e outra rede: abra o site no celular usando os dados móveis, fora do Wi-Fi. Se abrir, o problema provavelmente está no seu computador ou na sua rede.
  • Outro navegador: se o site abre em outro navegador, o problema provavelmente está no navegador que falhou.
  • Outras pessoas: peça a alguém em outra conexão para abrir o endereço. Se ninguém consegue, a causa está provavelmente no servidor.
  • Outros sites HTTPS: abra um site conhecido. Se vários falham, o problema provavelmente é local; se só o seu falha, vale seguir o caminho do dono do site.

Se o erro é do site e você é só visitante, avise o dono: a ajuda do Chrome orienta a contatar o dono do site quando o problema continua depois dos testes locais.

Como resolver o ERR_SSL_PROTOCOL_ERROR como visitante

Os itens abaixo vêm da ajuda do Chrome sobre erros de conexão segura. Ela os cita para códigos parecidos, então trate cada um como um teste, com resultado incerto para este erro.

Data e hora do aparelho

A ajuda do Chrome diz que o erro de segurança pode aparecer se a data e a hora do computador ou do celular estiverem imprecisas. Confira e corrija nas configurações do sistema.

Antivírus com verificação de HTTPS

O Chrome explica que um antivírus que verifica o tráfego HTTPS pode causar erros de conexão segura. Desligue temporariamente essa função, teste o site e ligue de novo. A própria ajuda lembra de reativar o antivírus quando terminar, então não deixe a proteção desligada.

Proxy de empresa

Redes de empresa podem ter um proxy que inspeciona o HTTPS, como o ZScaler, o Palo Alto Networks e o Fortinet, que a ajuda do Chrome cita pelo nome. Nesse caso, fale com o administrador da rede. A ajuda avisa para não instalar um certificado por conta própria.

Wi-Fi de café ou aeroporto

Algumas redes públicas exigem login. A ajuda do Chrome indica abrir um site com endereço http:// (como http://example.com) para a tela de login aparecer. Entre e volte ao site.

Janela anônima e sistema atualizado

Abra o site numa janela anônima. Se funcionar, uma extensão do navegador está atrapalhando; desative as extensões uma a uma. A ajuda também orienta atualizar o sistema. E confira se nenhum firewall ou antivírus está bloqueando a conexão, como lembra a página sobre erros de conexão do Chrome.

Quer um endereço com o seu nome para o seu projeto? Busque e registre seu domínio na Eleven Host. Registrar domínio

Como resolver como dono do site

Se você administra o servidor e o erro aparece para outras pessoas, o foco é o servidor. Os exemplos usam Nginx no Ubuntu; o guia Instalar Nginx no Ubuntu: passo a passo na VPS mostra a instalação. Comece pelo diagnóstico.

1. Rode o diagnóstico

O primeiro comando mostra o handshake TLS e o certificado. Uma mensagem como "wrong version number" pode indicar que a porta 443 está respondendo HTTP puro:

curl -vI https://seudominio.com.br

O segundo usa o OpenSSL. Segundo a documentação, o -connect indica o host e a porta, e o -servername envia o nome do site na extensão SNI. A ferramenta é descrita como útil para diagnosticar servidores SSL, e mostra o certificado entregue e o protocolo negociado:

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

Para testar apenas o TLS 1.2, acrescente -tls1_2 ao final do comando.

2. A porta 443 está atendendo HTTPS de verdade?

Segundo a documentação do Nginx, o parâmetro ssl precisa estar habilitado nos sockets de escuta do bloco server. Um listen 443; sem o ssl pode fazer o servidor responder HTTP comum na porta 443, e o navegador pode acusar erro de protocolo. Procure a linha:

sudo grep -rn "listen 443" /etc/nginx/

E confira se a porta está aberta e quem a atende:

sudo ss -tlnp | grep 443

A forma correta, segundo o Nginx, é listen 443 ssl;.

3. Certificado e chave no bloco certo

O modelo mínimo da documentação do Nginx tem o listen com ssl, o server_name, o certificado, a chave e os protocolos:

server {

listen 443 ssl;

server_name 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;

}

Os caminhos em /etc/letsencrypt/live/ são os que o Certbot cria, então esses arquivos só existem depois de emitir o certificado (veja a seção do Certbot abaixo). A documentação do Nginx usa outro nome de arquivo no exemplo dela.

4. Vários sites no mesmo IP

Segundo o Nginx, a conexão SSL é estabelecida antes de o navegador enviar a requisição HTTP, e sem o nome do site (SNI) o servidor pode oferecer só o certificado do site padrão. Se o server_name do bloco não bate com o domínio acessado, entra o certificado do site padrão. Confira o server_name de cada site.

5. Protocolos antigos

O padrão do Nginx é ssl_protocols TLSv1.2 TLSv1.3;, e a documentação diz que, por padrão, configurar isso de forma explícita geralmente não é necessário. O guia Server-Side TLS traz o perfil Modern, só com TLS 1.3, e o Intermediate, com TLS 1.2 e TLS 1.3. Um servidor limitado ao TLS 1.0 ou 1.1 tende a falhar nos navegadores atuais. A ajuda do Chrome liga protocolos desatualizados a outro erro, o ERR_SSL_VERSION_OR_CIPHER_MISMATCH, e sugere ao dono do site configurar o servidor para usar o TLS 1.3.

6. Teste e recarregue

Depois de cada ajuste, valide a sintaxe. Segundo a documentação, o Nginx confere a sintaxe e tenta abrir os arquivos citados na configuração:

sudo nginx -t

Se o teste passar, recarregue sem derrubar as conexões em andamento:

sudo systemctl reload nginx

O erro pode ter mais de uma causa. Mude uma coisa por vez e repita o curl -vI a cada alteração, assim você sabe o que resolveu.

Emitir o certificado com o Certbot

Se o certificado não existe ou não está configurado, o Certbot obtém um. Os comandos a seguir são os da página do Certbot para Nginx, via snap:

sudo snap install --classic certbot

sudo ln -s /snap/bin/certbot /usr/local/bin/certbot

Para obter o certificado e deixar o Certbot editar o Nginx:

sudo certbot --nginx

Se prefere só o certificado, sem mexer na configuração:

sudo certbot certonly --nginx

Depois, confirme que a renovação funciona:

sudo certbot renew --dry-run

Veja também o guia Redirecionar HTTP para HTTPS: passo a passo no Nginx, que mostra como mandar o tráfego HTTP para a versão segura. Para erros parecidos de conexão, o artigo ERR_CONNECTION_REFUSED: o que é e como resolver ajuda a separar porta fechada de serviço parado.

Checklist do ERR_SSL_PROTOCOL_ERROR

  • Testei o site em outro aparelho e em outra rede.
  • Conferi a data e a hora do aparelho.
  • Testei em janela anônima e em outro navegador.
  • Desliguei por pouco tempo a verificação de HTTPS do antivírus, testei e liguei de novo.
  • Rodei curl -vI e openssl s_client no domínio.
  • Achei o listen 443 e confirmei o ssl na linha.
  • Conferi certificado, chave e server_name no bloco certo.
  • Validei com sudo nginx -t antes de recarregar.
  • Rodei sudo certbot renew --dry-run para conferir a renovação.

Quer um servidor seu para os seus projetos? A VPS Plano Bronze sai a partir de R$ 17,00/mês; confira na loja o que cada plano inclui. Ver planos de VPS

Perguntas frequentes

O ERR_SSL_PROTOCOL_ERROR é problema do meu computador ou do site?

Pode ser dos dois. Teste em outro aparelho e outra rede: se abrir, o problema provavelmente é local; se ninguém abrir, provavelmente é do servidor.

As dicas para o visitante resolvem com certeza?

Não. Elas vêm da ajuda do Chrome para erros de segurança parecidos e funcionam como testes: se não mudar nada, avise o dono do site.

Desligar o antivírus resolve?

Desligue só a verificação de HTTPS e só para testar, e ligue de novo. Se o site abrir, ajuste a função no antivírus em vez de deixá-la desativada.

Um listen 443 sem ssl causa o erro?

É uma causa a verificar. O Nginx exige o parâmetro ssl no listen; sem ele, a porta 443 responde HTTP comum e o navegador pode acusar erro de protocolo.

Esta resposta lhe foi útil?

Artigos Relacionados