Como corrigir o erro “SSL Handshake Failed” facilmente

TL;DR: O erro SSL Handshake Failed aparece quando um navegador e um servidor não conseguem chegar a um acordo sobre as configurações de segurança necessárias para abrir uma conexão criptografada. As causas mais comuns são um certificado SSL expirado, um relógio incorreto no dispositivo, um navegador desatualizado ou uma incompatibilidade na versão do protocolo TLS. Se o erro aparecer em todos os sites HTTPS, comece pela Correção 1 (data e hora). Se estiver limitado a um único site, comece pela Correção 2 (verificação do certificado).

Causas comuns do erro SSL Handshake Failed

O handshake SSL/TLS é uma breve negociação que acontece antes de cada conexão HTTPS. O seu navegador e o servidor precisam concordar quanto a uma versão de protocolo, um conjunto de cifras (cipher suite) e a validade do certificado do servidor. Quando qualquer parte dessa negociação falha, a conexão não pode ser estabelecida. As causas mais comuns incluem:

  • Configurações de data e hora incorretas: os certificados SSL só são válidos dentro de uma janela de tempo fixa. Se o relógio do seu dispositivo estiver errado por apenas algumas horas, o navegador trata o certificado como expirado ou ainda não válido, mesmo que o certificado em si esteja correto.
  • Navegador desatualizado: navegadores que não suportam versões modernas de TLS ou conjuntos de cifras não conseguem se conectar a servidores que as exigem. Extensões de navegador que interceptam o tráfego podem causar o mesmo resultado.
  • Certificado SSL expirado ou incompatível: um certificado que já passou da data de validade, ou que foi emitido para o domínio errado, causa a falha do handshake imediatamente.
  • Incompatibilidade de versão de protocolo: o cliente e o servidor precisam concordar quanto a uma versão do TLS. Servidores que ainda usam TLS 1.0 ou 1.1 são rejeitados por todos os navegadores atuais, que exigem pelo menos o TLS 1.2. Pelos tickets de suporte do WP STAGING, as configurações de TLS desatualizadas no servidor estão entre as causas do lado do servidor que encontramos com mais frequência.
  • Incompatibilidade de conjunto de cifras: mesmo quando as versões do TLS coincidem, o servidor precisa oferecer pelo menos um conjunto de cifras que o navegador aceite. Servidores mais antigos, com uma lista de cifras curta ou obsoleta, costumam esbarrar nessa barreira sem nenhum erro evidente do lado do servidor.
  • Interferência de firewall ou antivírus: alguns softwares de segurança interceptam conexões HTTPS e as assinam novamente com o próprio certificado. Se esse certificado não for confiável para o navegador, ou se o processo de inspeção remover conjuntos de cifras, o handshake falha.

Como diagnosticar o problema

Associar o seu sintoma à causa mais provável antes de aplicar as correções economiza bastante tempo:

Sintoma Causa mais provável Primeira correção
Erro em todos os sites HTTPS Relógio do dispositivo errado ou navegador desatualizado Correção 1 (data/hora) ou Correção 3 (atualização do navegador)
Erro apenas em um site específico Certificado expirado ou mal configurado nesse servidor Correção 2 (verificação do certificado)
Erro surgiu após instalar uma extensão de navegador Extensão interceptando o tráfego SSL Correção 5 (desativar extensões)
Erro em apenas um navegador, não nos outros Configuração de TLS do navegador ou versão desatualizada Correção 3 (atualização do navegador)
Erro após migrar o WordPress para HTTPS WordPress não totalmente configurado para HTTPS Correções específicas do WordPress abaixo
Seus visitantes relatam o erro no seu site Problema de TLS ou certificado do lado do servidor Execute um teste de servidor SSL

Para problemas do lado do servidor, o Teste de servidor Qualys SSL Labs analisa o seu domínio gratuitamente, avalia a sua configuração de TLS e lista cada problema de certificado e de cifra que encontra. Nos nossos testes com o WP STAGING, executar esse teste é a maneira mais rápida de confirmar se o problema está no servidor ou no lado do cliente.

As 5 maneiras mais fáceis de corrigir o erro "SSL Handshake Failed"

  1. Verifique as configurações de data e hora
  2. Verifique se o seu certificado SSL ainda é válido
  3. Atualize o navegador
  4. Verifique o suporte aos protocolos TLS/SSL
  5. Desative as extensões do navegador

1. Verifique as configurações de data e hora

O erro "SSL Handshake Failed" geralmente ocorre por causa de configurações de data e hora incorretas no dispositivo. Os certificados SSL dependem de um horário preciso, então um relógio errado pode interromper a conexão segura. Veja como corrigir:

Clique com o botão direito na hora e na data na barra de tarefas e selecione "Ajustar data/hora".

Ajustar data e hora para corrigir o erro “SSL Handshake Failed”

Ative essa função para permitir que o Windows defina a hora automaticamente com base no seu fuso horário. Para sincronização manual, clique em "Sincronizar agora" em "Sincronizar o relógio".

Ativar o ajuste automático de hora para corrigir o erro “SSL Handshake Failed”

2. Verifique se o seu certificado SSL ainda é válido

Um certificado SSL expirado ou inválido é uma causa direta do erro "SSL Handshake Failed". Para garantir um handshake bem-sucedido, confirme que o certificado é válido e está instalado para o domínio correto. Veja como conferir:

Acesse o site afetado em qualquer navegador, clique no ícone de informações do site na barra de endereço e selecione "A conexão é segura".

Opção “A conexão é segura” no Google Chrome

Em seguida, clique em "O certificado é válido".

Verificar a data de validade do certificado para corrigir o erro “SSL Handshake Failed”

No Visualizador de certificados, localize a seção "Período de validade" e confira a data de validade.

Visualizar o período de validade do SSL para corrigir o erro “SSL Handshake Failed”

Se o certificado tiver expirado, renove-o por meio do seu provedor de certificados SSL. Se o nome de domínio no certificado não corresponder ao URL do seu site, o certificado precisa ser reemitido para o domínio correto.

3. Atualize o navegador

Um navegador desatualizado pode não suportar as versões atuais de TLS ou os conjuntos de cifras, o que causa falhas de handshake em servidores que descontinuaram protocolos mais antigos. Abra as configurações do navegador, encontre a opção de atualização, instale as atualizações disponíveis e reinicie o navegador.

Procurar atualizações para corrigir o erro “SSL Handshake Failed”.

Observamos que essa correção resolve o erro nos casos em que um servidor aumentou recentemente o requisito mínimo de TLS e o navegador do cliente não havia sido atualizado para acompanhar.

4. Verifique o suporte aos protocolos TLS/SSL

O erro "SSL Handshake Failed" pode ocorrer se o navegador ou o servidor estiver configurado para uma versão de TLS incompatível. O TLS 1.2 e o TLS 1.3 são os padrões atuais, e a maioria dos navegadores modernos os suporta automaticamente.

Se você usa uma versão mais antiga do Firefox, digite about:config na barra de endereço, procure por security.tls.version.min e confirme que o valor é 3 (que corresponde ao TLS 1.2).

Verificar o suporte aos protocolos TLS/SSL para corrigir o erro “SSL Handshake Failed”.

Se você gerencia o seu próprio servidor, verifique se o TLS 1.2 e o 1.3 estão ativados nas configurações SSL/TLS do painel de controle da sua hospedagem, e se o TLS 1.0 e o 1.1 estão desativados. Em caso de dúvida, pergunte ao seu provedor de hospedagem.

5. Desative as extensões do navegador

Extensões de navegador que lidam com segurança ou privacidade podem interferir nas conexões SSL ao interceptar ou modificar o tráfego criptografado. Para verificar se uma extensão está causando o problema:

Vá nas configurações do navegador e acesse a seção de extensões ou complementos.

Encontre suas extensões no navegador.

Desative temporariamente todas as extensões.

Desative suas extensões para corrigir o erro “SSL Handshake Failed”.

Acesse o site afetado. Se o erro desaparecer, reative as extensões uma a uma, testando após cada uma, para identificar a que está em conflito. Extensões de VPN e bloqueadores de anúncios que fazem inspeção de HTTPS são os culpados mais comuns.

Problemas de configuração de SSL do lado do servidor

Se você gerencia o servidor e as cinco correções do lado do cliente não resolveram o erro, o problema provavelmente está na configuração de TLS do servidor. As causas mais comuns do lado do servidor:

Suporte a versões de TLS desatualizadas. Servidores configurados para aceitar apenas TLS 1.0 ou 1.1 serão rejeitados por todos os navegadores atuais. No Apache, ative os protocolos modernos com SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1. No Nginx, use ssl_protocols TLSv1.2 TLSv1.3;. A maioria dos painéis de controle de hospedagem gerenciada tem um botão gráfico para isso na seção SSL/TLS.

Conjuntos de cifras fracos ou incompatíveis. Se o seu servidor só oferece conjuntos de cifras obsoletos (RC4, 3DES, cifras de nível de exportação), o navegador rejeita a lista inteira e o handshake falha sem um erro claro. Atualize a configuração dos conjuntos de cifras do seu servidor para priorizar os conjuntos AEAD atuais. Executar o teste Qualys SSL Labs no seu domínio fornece uma lista específica do que o servidor oferece atualmente e quais itens remover.

Cadeia de certificados incompleta. O seu certificado SSL precisa ser servido com todos os certificados intermediários na ordem correta. Se faltarem intermediários, alguns navegadores não conseguem verificar o certificado e o handshake falha. A maioria dos provedores de certificados fornece um arquivo de pacote (bundle) que inclui a cadeia completa; instale o pacote em vez de apenas o certificado final (leaf).

Problemas de redirecionamento após a migração. Se você migrou recentemente o seu site de HTTP para HTTPS, uma regra de redirecionamento antiga no .htaccess ou na configuração do servidor pode gerar um loop que o navegador exibe como uma falha de conexão, em vez de um erro de redirecionamento. Revise as suas regras de redirecionamento após qualquer migração para HTTPS.

Correções específicas do WordPress para o SSL Handshake Failed

Quando o erro aparece especificamente em um site WordPress, estes passos tratam das causas mais comuns no nível do WordPress:

Force HTTPS no wp-config.php. Depois de instalar um certificado SSL, o WordPress ainda pode servir a área administrativa e a página de login por HTTP. Adicione estas linhas ao wp-config.php antes do comentário /* That's all, stop editing! */:

define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);

Também atualize Configurações > Geral para que tanto o Endereço do WordPress quanto o Endereço do Site usem https://.

Resolva o conteúdo misto. Uma página servida por HTTPS que carrega imagens, scripts ou folhas de estilo por HTTP gera avisos do navegador que podem parecer erros de handshake. Use as DevTools do navegador (aba Rede, filtrando por HTTP) para encontrar os recursos de conteúdo misto e, em seguida, atualize os URLs deles para usar HTTPS.

Desative temporariamente os plugins de gerenciamento de SSL. Plugins que forçam redirecionamentos para HTTPS podem entrar em conflito com a configuração de SSL do seu provedor de hospedagem. Desative-os um a um e teste após cada um.

Atualize o URL do site no banco de dados após uma migração. Se você migrou o WordPress usando o WP STAGING e o banco de dados ainda contém o endereço HTTP antigo, podem ocorrer loops de redirecionamento. Use o WP-CLI para atualizar:

wp search-replace 'http://yoursite.com' 'https://yoursite.com' --skip-columns=guid

Na nossa experiência com o WP STAGING, um http:// esquecido no banco de dados é uma das fontes mais comuns de erros relacionados a SSL logo após uma migração.

O que fazer se nenhuma das correções funcionar

Se você aplicou todas as correções acima e o erro persiste, siga este caminho de decisão:

Erro em um servidor que você controla:

  1. Execute o Teste de servidor Qualys SSL Labs no seu domínio e revise cada item sinalizado no relatório.
  2. Entre em contato com o seu provedor de hospedagem com o relatório do SSL Labs. A maioria das hospedagens gerenciadas consegue resolver os problemas de configuração de TLS do lado delas sem exigir que você acesse o servidor.
  3. Se você tem acesso direto ao servidor, procure no log de erros do servidor web por entradas SSL_do_handshake ou handshake failure. Elas indicam exatamente a versão do protocolo ou o conjunto de cifras que não pôde ser negociado.

Erro em um site que não é seu:

  1. Tente acessar o site em uma rede diferente, como trocar do Wi-Fi para os dados móveis ou desativar uma VPN. Um firewall corporativo ou um proxy de interceptação pode remover ou substituir certificados, fazendo o handshake falhar apenas do seu lado.
  2. Limpe o estado SSL do seu navegador. No Chrome: Configurações > Privacidade e segurança > Segurança > Gerenciar certificados > Limpar estado SSL.
  3. Se o erro estiver limitado à sua rede, entre em contato com o administrador da sua rede ou de TI. Um proxy ou firewall provavelmente é a causa.
  4. Se nada disso resolver, o dono do site tem um problema de configuração do lado do servidor que só ele pode resolver. Fornecer a versão do seu navegador, a versão do sistema operacional e a mensagem de erro completa dá a ele o que precisa para reproduzir o problema.

Conclusão

As falhas de handshake SSL podem ter muitas causas: um relógio do dispositivo alguns minutos adiantado ou atrasado, um navegador que não foi atualizado, um certificado expirado ou um servidor que não foi configurado para os padrões atuais de TLS. Percorrer a tabela de diagnóstico no início deste guia e depois aplicar as correções em ordem resolve a maioria dos casos sem precisar entrar em contato com ninguém.

Mantenha sempre backups, adote boas práticas de segurança para evitar interrupções e mantenha o seu site WordPress seguro e acessível.

Artigos relacionados

Rene Hermenau

Autor: Rene Hermenau

Sobre o autor: René Hermenau é o fundador do WP STAGING. Ele trabalha com backups do WordPress, ambientes de staging, migrações, gestão de bases de dados e fluxos de implantação seguros.