Instalar um certificado Secure Sockets Layer (SSL) no seu site WordPress permite que ele use HTTPS para garantir conexões seguras. Infelizmente, há uma variedade de coisas que podem dar errado no processo de confirmar um certificado SSL válido e fazer uma conexão entre o servidor do seu site e o navegador de um visitante.

Se você encontrou uma mensagem de erro “SSL Handshake Failed” e está confuso quanto ao seu significado, você não está sozinho. É um erro comum que não lhe diz muito por si só. Embora esta possa ser uma experiência frustrante, a boa notícia é que existem passos simples que você pode dar para resolver o problema.

Neste artigo, vamos explicar o que é e o que causa o erro SSL Handshake Failed. Em seguida, vamos lhe fornecer vários métodos que você pode usar para corrigi-lo.

Vamos começar!

Uma introdução ao SSL Handshake

Antes de nos aprofundarmos no que causa o erro TLS/SSL handshake, é útil entender o que é o TLS/SSL handshake. Secure Sockets Layer (SSL) e Transport Layer Security (TLS) são protocolos usados para autenticar transferências de dados entre servidores e sistemas externos, como navegadores.

Certificados SSL são necessários para proteger o seu site usando HTTPS. Não vamos nos aprofundar muito sobre a diferença entre TLS vs SSL, já que é uma diferença menor. Os termos são frequentemente usados de forma intercambiável, por isso, para simplificar, vamos usar “SSL” para nos referirmos a ambos.

Com isso fora do caminho, um SSL handshake é o primeiro passo no processo de estabelecimento de uma conexão HTTPS. Para autenticar e estabelecer a conexão, o navegador do usuário e o servidor do site devem passar por uma série de verificações (o handshake), que estabelecem os parâmetros de conexão HTTPS.

Vamos explicar: o cliente (normalmente o navegador) envia uma solicitação de conexão segura para o servidor. Após o envio da solicitação, o navegador envia uma chave pública para o seu computador e verifica essa chave em relação a uma lista de certificados. O computador então gera uma chave e a criptografa, utilizando a chave pública enviada a partir do navegador.

Para resumir uma longa história, sem o SSL handshake, uma conexão segura não será feita. Isto pode representar um risco de segurança significativo. Além disso, há muitas partes móveis envolvidas no processo.

Isso significa que há muitas oportunidades diferentes para que algo dê errado e cause um handshake failure, ou até mesmo leve ao erro “sua conexão não é privada“, causando a saída dos visitantes..

Entendendo o que causa o erro SSL Handshake Failure

Um SSL Handshake Failure ou erro 525 significa que o servidor e o navegador não foram capazes de estabelecer uma conexão segura. Isto pode acontecer por uma variedade de razões.

Geralmente, um Erro 525 significa que o SSL handshake entre um domínio usando o Cloudflare e o servidor web de origem falhou:

ssl erro de aperto de mão falhado
Entretanto, também é importante entender que erros SSL podem acontecer no lado do cliente ou no lado do servidor. As causas comuns de erros SSL no lado do cliente incluem:

  • A data ou hora errada no dispositivo do cliente.
  • Um erro com a configuração do navegador.
  • Uma conexão que está sendo interceptada por um terceiro.

Algumas causas do lado do servidor incluem:

  • Uma mudança na sequência de números.
  • Um protocolo utilizado pelo cliente que não é suportado pelo servidor.
  • Um certificado que esteja incompleto, inválido ou vencido.

Normalmente, se o SSL handshake falhar, o problema pode ser atribuído a algo errado com o site ou servidor e suas configurações SSL.

Como corrigir o erro SSL Handshake Failed (5 métodos)

Há várias causas potenciais por trás do erro “SSL Handshake Failed”. Portanto, não há uma resposta simples quando se trata de como você deve corrigi-lo.

Felizmente, há um punhado de métodos que você pode usar para começar a explorar possíveis problemas e resolvê-los um a um. Vamos dar uma olhada em cinco estratégias que você pode usar para tentar corrigir o erro SSH Handshake Failed.

1. Atualize a data e hora do seu sistema

Vamos começar com uma das causas mais improváveis, mas que é incrivelmente fácil de corrigir se for o problema: o relógio do seu computador.

Se o seu sistema estiver usando a data e hora errada, isso pode interromper o SSL handshake. Quando o relógio do sistema é diferente da hora real, por exemplo, se for ajustado muito no futuro, pode interferir com a verificação do certificado SSL.

O relógio do seu computador pode ter sido ajustado incorretamente devido a erro humano ou simplesmente devido a uma falha nas suas configurações. Seja qual for o motivo, é uma boa idéia verificar e garantir que o horário do seu sistema esteja correto, e atualizá-lo caso não esteja.

É claro, se o seu relógio está mostrando as informações corretas, é seguro assumir que esta não é a fonte da questão do “SSL Handshake Failed”.

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

As datas de validade são colocadas em certificados SSL, para ajudar a garantir que as suas informações de validação permaneçam precisas. Geralmente, a validade desses certificados dura entre seis meses e dois anos.

Se um certificado SSL for revogado ou expirar, o navegador irá detectar isso e não será capaz de completar o SSL handshake. Se passou mais de um ano desde que você instalou um certificado SSL no seu site, pode ser hora de reemiti-lo.

Para visualizar o status do seu certificado SSL, você pode usar uma ferramenta de verificação de certificados SSL, como a oferecida pela Qualys:

A ferramenta de teste do servidor SSL no site Qualys
A ferramenta de teste do servidor SSL no site Qualys

Esta ferramenta é ao mesmo tempo confiável e livre para uso. Tudo que você precisa fazer é inserir seu nome de domínio no campo Hostname, e depois clicar em Submit. Uma vez que o verificador tenha terminado de analisar a configuração SSL do seu site, ele irá lhe apresentar alguns resultados:

A página de resultados da ferramenta Qualys SSL checker
A página de resultados da ferramenta Qualys SSL checker

Nesta página, você pode descobrir se seu certificado ainda é válido e ver se ele foi revogado por algum motivo.

Em ambos os casos, atualizar seu certificado SSL deve resolver o erro de handshake (e é vital para manter seu site e sua loja WooCommerce seguros).

3. Configure o seu navegador para o suporte ao protocolo SSL/TLS mais recente

Às vezes a melhor maneira de determinar a causa raiz de um problema é através de um processo de eliminação. Como mencionamos anteriormente, a falha do SSL handshake pode frequentemente ocorrer devido a uma má configuração do navegador.

A maneira mais rápida de determinar se um determinado navegador é o problema é tentar mudar para um diferente. Isto pode ao menos ajudar a reduzir o problema. Você também pode tentar desativar quaisquer plugins e redefinir o seu navegador de volta para as configurações padrão.

Outro potencial problema relacionado ao navegador é um descompasso de protocolos. Por exemplo, se o servidor suporta apenas o TLS 1.2, mas o navegador está configurado apenas para o TLS 1.0 ou TLS 1.1, não há nenhum protocolo mutuamente suportado disponível. Isto inevitavelmente levará a uma falha no SSL handshake.

Como você pode verificar se este problema está ocorrendo varia de acordo com o navegador que você está usando. Como exemplo, vamos ver como o processo funciona no Chrome. Primeiro, abra seu navegador e vá para Configurações > Avançado. Isto irá expandir uma série de opções de menu.

Sob a seção Sistema, clique em Abrir as configurações de proxy do seu computador:

A página de configurações do sistema no Google Chrome
A página de configurações do sistema no Google Chrome

Isto abrirá uma nova janela. A seguir, selecione a aba Avançado. Sob a seção Segurança, verifique se a caixa ao lado de Usar TLS 1.2 está selecionada. Se não estiver, marque essa opção:

As configurações avançadas das propriedades da Internet no Windows
As configurações avançadas das propriedades da Internet no Windows

Também é recomendado que você desmarque as caixas para SSL 2.0 e SSL 3.0.

O mesmo se aplica ao TLS 1.0 e ao TLS 1.1, uma vez que eles estão sendo gradualmente eliminados. Quando terminar, clique no botão OK, e verifique se o erro SSL Handshake foi resolvido.

Note que se você estiver usando o Apple Safari ou Mac OS, não há uma opção para ativar ou desativar os protocolos SSL. O TLS 1.2 é automaticamente ativado por padrão. Se você estiver usando Linux, você pode consultar o guia da Red Hat sobre endurecimento do TLS.

4. Verifique se o seu servidor está configurado corretamente para suportar o SNI

Também é possível que a falha do SSL handshake esteja sendo causada por uma configuração imprópria de Server Name Indication (SNI). A SNI é o que permite que um servidor web hospede com segurança vários certificados TLS para um endereço IP.

Cada site em um servidor tem seu próprio certificado. Entretanto, se o servidor não estiver habilitado para SNI, isso pode resultar em uma falha no SSL handshake, pois o servidor pode não saber qual certificado apresentar.

Existem algumas maneiras de verificar e ver se um site requer o SNI. Uma opção é usar o Qualys’s SSL Server Test, que discutimos na seção anterior. Insira o nome de domínio do seu site, e depois clique no botão Submit.

Na página de resultados, procure por uma mensagem que diz “Este site funciona apenas em navegadores com suporte SNI”:

A página de resultados resumidos da ferramenta Qualys SSL checker
A página de resultados resumidos da ferramenta Qualys SSL checker

Outra abordagem para detectar se um servidor está usando SNI é navegar pelos nomes dos servidores na mensagem ‘ClientHello’. Este é um processo mais técnico, mas pode oferecer muitas informações.

Envolve verificar o cabeçalho extendido do olá para um campo ‘server_name’, para ver se as certificações corretas são apresentadas.

Se você está familiarizado com o uso de ferramentas como o kit de ferramentas OpenSSL e Wireshark, você pode achar este método preferível. Você pode usar o openssl s_client com e sem a opção -servername:

# without SNI
 $ openssl s_client -connect host:port 

 # use SNI
 $ openssl s_client -connect host:port -servername host

Se você recebe dois certificados diferentes com o mesmo nome, significa que o SNI é suportado e configurado corretamente.

Entretanto, se a saída nos certificados retornados for diferente, ou a chamada sem SNI não puder estabelecer uma conexão SSL, indica que o SNI é necessário, mas não configurado corretamente. A resolução deste problema pode exigir a comutação para um endereço IP dedicado.

5. Certifique-se de que as Cipher Suites combinam

Se você ainda não foi capaz de identificar a causa da falha do SSL handshake, isso pode ser devido a um descasamento do cipher suites. Caso você não esteja familiarizado com o termo, ‘cipher suites’ refere-se a um conjunto de algoritmos, incluindo os de troca de chaves, criptografia em massa e código de autenticação de mensagens, que podem ser usados para proteger conexões de rede SSL e TLS.

Se as suítes de cifras que um servidor usa não suportam ou combinam com o que é usado pelo Cloudflare, isso pode resultar em um erro “SSL Handshake Failed”.

Quando se trata de descobrir se existe um descompasso entre as suítes de cifras, o Teste de Servidor SSL da Qualys prova mais uma vez ser uma ferramenta útil.

Quando você digitar seu domínio e clicar em Enviar, você verá uma página de análise resumida. Você pode encontrar as informações criptografadas na seção Cipher Suites:

Qualys cipher suites
A seção Cipher Suites em um relatório Qualys SSL

Você pode usar esta página para descobrir quais cifras e protocolos o servidor suporta. Você vai querer ficar atento a qualquer que mostre o status ‘fraco’. Além disso, esta seção também detalha os algoritmos específicos para as suítes de cifras.

Para corrigir este problema, você pode comparar os resultados com o que seu navegador suporta, usando a ferramenta Qualys SSL/TLS Capabilities of Your Browser. Para maiores informações e orientações sobre as suítes de cifras, recomendamos também consultar o guia da ComodoSSLStore.

Resumo

Um dos tipos de problemas mais perplexos, porém comuns, relacionados ao SSL é o erro “SSL Handshake Failed”. Lidar com este erro pode ser estressante, uma vez que tem muitas causas potenciais, incluindo problemas tanto do lado do cliente quanto do lado do servidor.

Entretanto, existem algumas soluções confiáveis que você pode usar para identificar o problema e resolvê-lo. Aqui estão cinco maneiras que você pode usar para corrigir o erro do SSL Handshake Failed:

  1. Atualize a data e hora do seu sistema.
  2. Verifique se o seu certificado SSL é válido (e reemitide-o se necessário).
  3. Configure seu navegador para suportar as últimas versões do TLS/SSL.
  4. Verifique se o seu servidor está configurado corretamente para suportar o SNI.
  5. Certifique-se de que as sequênciaa de números estejam de acordo.