ERR_SSL_PROTOCOL_ERROR

ERR_SSL_PROTOCOL_ERROR error guide banner

RESPOSTA DIRETA

ERR_SSL_PROTOCOL_ERROR significa que o navegador não conseguiu concluir um handshake TLS com o servidor. As causas comuns incluem HTTP simples na porta 443, um virtual host HTTPS incorreto, uma incompatibilidade de CDN ou proxy ou uma configuração TLS incompatível. Teste o endpoint HTTPS e o certificado pelo lado do servidor ou da rede antes de alterar as configurações do navegador.

Pontos principais

  • Primeiro, determine se a porta 443 está falando TLS; uma resposta HTTP simples ou outro protocolo nessa porta costuma disparar esse erro.
  • Um certificado pode estar presente, mas ser inutilizável se estiver expirado, não incluir o hostname solicitado, estiver sem certificados intermediários ou não tiver sido carregado após a renovação.
  • As configurações de CDN, reverse proxy e load balancer devem corresponder ao protocolo HTTPS, à porta, ao hostname e à configuração de certificado reais da origem.
  • Use openssl s_client com SNI para distinguir um problema no listener de problemas de seleção de certificado, cadeia ou política TLS.
  • Não desative permanentemente a verificação de certificados; corrija o certificado da origem e a configuração TLS.
Atualizado em 2026-09-22 · Revisão editorial pendente Erros de SSL e segurança
SA

Site Administrator

O que este erro significa e como reconhecê-lo

  • O Chrome ou o Edge informa “Este site não pode fornecer uma conexão segura” com ERR_SSL_PROTOCOL_ERROR.
  • A falha pode afetar o site inteiro, um subdomínio ou apenas um hostname atrás de um proxy ou load balancer.
  • O HTTP simples na porta 80 pode funcionar enquanto o HTTPS falha, indicando um problema no caminho TLS, e não necessariamente na aplicação.
  • O erro pode começar após uma renovação de certificado, migração de servidor, alteração na configuração do servidor web, mudança de CDN ou mudança no serviço que escuta na porta 443.
  • Um teste direto na origem e um teste usando o hostname público podem produzir resultados diferentes quando há uma CDN, um reverse proxy ou um load balancer envolvido.

Causas principais, por probabilidade

  1. A porta 443 está servindo HTTP simples ou outro protocolo que não é TLS. O listener HTTPS pode estar ausente ou o serviço errado pode ter sido associado à porta 443. Nesse caso, o navegador recebe dados que não correspondem a um handshake TLS.
  2. O virtual host HTTPS ou o server block está incorreto. O servidor pode estar escutando no endereço errado, selecionando o hostname incorreto ou não ter as diretivas TLS exigidas pelo servidor web.
  3. Há uma incompatibilidade na origem de uma CDN, reverse proxy ou load balancer. O proxy pode estar usando HTTP enquanto a origem espera HTTPS, ou pode estar se conectando à porta ou ao backend errados.
  4. A configuração TLS é incompatível ou está malformada. Versões de protocolo não compatíveis, configurações restritivas de cipher, problemas de roteamento SNI ou um dispositivo que termina TLS configurado incorretamente podem interromper o handshake antes da validação do certificado.
  5. O certificado ou a cadeia não pode ser usado. Um certificado expirado, um certificado intermediário ausente ou um certificado que não cobre o hostname solicitado pode impedir uma conexão segura. Alguns navegadores e caminhos de conexão exibem, em vez disso, um aviso de certificado mais específico.
  6. Um certificado renovado não foi carregado pelo serviço. Atualizar os arquivos do certificado no disco não altera o certificado apresentado por um servidor web em execução até que sua configuração seja recarregada ou reiniciada de acordo com o procedimento documentado do serviço.

Como corrigir

1A porta 443 conclui um handshake TLS?2O certificado retornado é válido para o hostname exatoe está dentro do período de validade?3A cadeia de certificados necessária é retornada?4O endpoint público usa uma CDN, um proxy ou um loadbalancer?5Os logs e testes mostram um problema de protocolo,cipher, SNI ou dispositivo de rede?
Diagnostic flow at a glance — full detail in the steps below.

1. Determine se a falha é pública, específica da origem ou local

Tente acessar o hostname exato que falha a partir de outra rede ou dispositivo. Se apenas um computador falhar, verifique o software de segurança local, os proxies de interceptação e o horário do sistema. Se todos os clientes falharem, prossiga com a investigação do servidor, proxy, CDN ou load balancer.

Se o HTTP funciona, mas o HTTPS não, concentre-se no listener TLS, na porta 443, na seleção do certificado e em qualquer proxy entre o cliente e a origem. Não presuma que o funcionamento do HTTP comprova que a configuração HTTPS está correta.

2. Teste o handshake TLS sem alterar o estado do servidor

Em um terminal administrativo com acesso de rede ao endpoint, execute:

text
openssl s_client -connect [your-hostname]:443 -servername [your-hostname] -showcerts

A opção -servername é importante quando o SNI seleciona certificados ou virtual hosts. Registre se o handshake é iniciado, qual certificado é retornado, a data de expiração do certificado, os hostnames do Subject Alternative Name e se os certificados intermediários estão incluídos.

  • Se a conexão retornar HTTP simples ou falhar antes que qualquer certificado apareça, inspecione o listener da porta 443 e o roteamento do proxy.
  • Se um certificado for retornado, compare-o com o hostname solicitado e verifique suas datas de validade e sua cadeia.
  • Se um teste direto na origem funcionar, mas o hostname público falhar, inspecione a CDN, o reverse proxy, o load balancer ou o caminho DNS, em vez de alterar a aplicação.

3. Verifique o listener HTTPS e o roteamento do hostname

Com acesso e autorização apropriados ao servidor, inspecione a configuração ativa do servidor web e confirme que:

  • o serviço pretendido está escutando na porta 443;
  • o server block ou virtual host HTTPS está habilitado;
  • o hostname solicitado está incluído nas configurações relevantes de server_name ou ServerName/ServerAlias;
  • o TLS está habilitado para esse listener; e
  • os caminhos do certificado e da chave privada apontam para os arquivos pretendidos.

No Nginx, verifique o server block habilitado e sua configuração listen 443 ssl. No Apache, verifique a configuração <VirtualHost *:443> e SSLEngine on. Não copie diretivas entre produtos sem verificar a sintaxe e a versão compatíveis com o servidor instalado.

4. Valide o certificado e a cadeia

Confirme que o certificado apresentado:

  • não está expirado nem inválido por ainda não estar vigente;
  • cobre o hostname exato nas entradas de Subject Alternative Name;
  • corresponde à chave privada associada; e
  • vem acompanhado da cadeia de certificados intermediários necessária.

Um certificado para o domínio raiz não cobre automaticamente todos os subdomínios. O subdomínio deve estar listado explicitamente ou ser coberto por um certificado wildcard apropriado. Se o servidor apresentar apenas o certificado leaf, instale o arquivo de cadeia fornecido pela autoridade certificadora no formato exigido pelo servidor web.

5. Verifique a renovação e o carregamento do certificado

Em uma implantação gerenciada pelo Certbot, um administrador pode executar certbot renew --dry-run para testar o fluxo de renovação sem emitir um certificado de produção. Revise a saída, a configuração de renovação, as permissões e o hook de reload do serviço.

Se a renovação tiver sido concluída, mas os clientes ainda receberem o certificado antigo, confirme se o servidor web ou o proxy que termina TLS carregou os novos arquivos. Um reload ou restart altera o estado do serviço e deve ser realizado somente durante uma janela de manutenção aprovada, com um plano de rollback e seguindo o procedimento documentado do produto. Mantenha essa ação operacional separada dos diagnósticos somente de leitura.

6. Inspecione as configurações TLS da CDN, do proxy e do load balancer

Identifique onde o TLS termina: na CDN, no proxy de borda, no load balancer ou no servidor de origem. Verifique se o protocolo e a porta de origem configurados correspondem ao que a origem realmente oferece.

Se uma CDN oferecer modos como Flexible, Full ou Full (strict), selecione o modo que corresponda à configuração real da origem e à validade do certificado. Um modo menos rigoroso pode ocultar o problema subjacente ou criar uma falha diferente; ele não substitui de forma duradoura um certificado de origem válido. Faça alterações de configuração somente com autorização e, em seguida, teste novamente o hostname público e o caminho até a origem, quando possível.

7. Verifique interferências de protocolo, SNI ou dispositivos de rede

Se o endpoint apresentar um certificado válido e correspondente, mas o handshake ainda falhar, compare os resultados de redes e clientes TLS diferentes. Revise as configurações do firewall, load balancer, web application firewall e inspeção TLS em busca de versões de protocolo bloqueadas, políticas de cipher não compatíveis, roteamento SNI incorreto ou tráfego alterado. Preserve a saída do handshake e os logs relevantes do servidor para o provedor de hospedagem ou administrador da rede.

Prevenção e como verificar a correção

  • Monitore a expiração dos certificados independentemente do mecanismo de renovação e emita alertas antes que eles se tornem inválidos.
  • Teste a renovação em um fluxo de não produção ou dry run e verifique se o hook de reload do serviço realmente apresenta o novo certificado.
  • Mantenha um inventário documentado de cada hostname, ponto de terminação TLS, certificado, chave privada e cadeia intermediária.
  • Após alterações em certificados, proxies, load balancers ou mapeamentos de portas, teste o hostname público e cada subdomínio importante.
  • Revise as alterações de configuração TLS quanto à compatibilidade de SNI, versão de protocolo, cipher e porta de origem antes da implantação.
  • Guarde detalhes recentes do servidor, proxy e certificado para que um handshake com falha possa ser comparado com a última configuração conhecida como funcional.

Quando buscar ajuda externa

Encaminhe o caso ao provedor de hospedagem, administrador da CDN ou do load balancer ou equipe de rede quando o endpoint retornar um certificado correspondente válido e uma cadeia completa, mas o handshake ainda falhar. Inclua o hostname exato, o horário da falha, se o teste foi direto ou passou por um proxy, os resultados de openssl s_client, os logs relevantes do servidor web ou proxy e as alterações recentes de configuração. Evite compartilhar chaves privadas ou outros segredos.

Também é apropriado escalar o caso quando você não consegue identificar qual serviço termina o TLS ou quando uma alteração de certificado, reload ou restart exige acesso no nível do provedor. Mantenha qualquer restart ou reload dentro dos procedimentos aprovados de manutenção e rollback do provedor.

Verificar um site

Perguntas frequentes

ERR_SSL_PROTOCOL_ERROR é causado por um certificado expirado?

Ele pode estar relacionado à validade do certificado, mas um certificado expirado costuma produzir um aviso mais específico sobre o certificado. Verifique o resultado completo do handshake em vez de presumir que o erro do navegador identifica o problema exato do certificado.

Por que o HTTP funciona enquanto o HTTPS exibe ERR_SSL_PROTOCOL_ERROR?

HTTP e HTTPS normalmente usam portas e listeners diferentes. Se o HTTP funciona, mas o HTTPS falha, a aplicação pode estar saudável enquanto a porta 443 apresenta uma configuração HTTPS ausente, um serviço incorreto ou um problema de TLS entre o proxy e a origem.

O que openssl s_client revela nesse erro?

Ele mostra se um handshake TLS é iniciado, qual certificado o endpoint apresenta, se o SNI seleciona o certificado esperado e qual cadeia de certificados é retornada. Isso ajuda a distinguir um listener que não usa TLS de um problema de certificado, cadeia ou política TLS.

Um certificado para o domínio principal pode cobrir um subdomínio?

Não automaticamente. O subdomínio solicitado deve aparecer nos Subject Alternative Names do certificado ou ser coberto por uma entrada wildcard adequada. Um certificado que cobre apenas o domínio raiz não é suficiente para todos os subdomínios.

Como solucionar esse erro com o Cloudflare ou outra CDN?

Determine se o erro ocorre entre o navegador e a CDN ou entre a CDN e a origem. Verifique o hostname, a porta, o protocolo, a validade do certificado e o modo de verificação configurados para a origem. Corrija a configuração da origem em vez de enfraquecer permanentemente a verificação do certificado.

Por que o certificado antigo continua sendo usado após a renovação?

O processo de renovação pode ter gravado um novo certificado no disco sem recarregar o serviço que termina o TLS. Confirme o certificado apresentado pelo endpoint ativo e revise o hook de reload do serviço antes de realizar um reload ou restart autorizado.

Documentação adicional

Para obter detalhes oficiais de implementação, consulte a documentação atual do servidor web ou terminador TLS em uso, a documentação da autoridade certificadora ou do Certbot sobre renovação e o guia de configuração TLS da origem do provedor de CDN ou reverse proxy. As referências apropriadas dependem de onde o TLS termina e de qual produto de servidor está instalado. Use a documentação do produto relevante para o formato da cadeia de certificados, os procedimentos de reload, as configurações de protocolo compatíveis, o comportamento do SNI e os modos de proxy.