L’installation d’un certificat SSL (Secure Sockets Layer) sur votre site WordPress lui permet d’utiliser le protocole HTTPS pour assurer des connexions sécurisées. Malheureusement, il y a toute une série de choses qui peuvent mal se passer dans le processus de confirmation d’un certificat SSL valide et d’établissement d’une connexion entre le serveur de votre site et le navigateur d’un visiteur.

Si vous avez rencontré un message d’erreur « SSL Handshake Failed » et que vous ne savez pas ce qu’il signifie, vous n’êtes pas seul. Il s’agit d’une erreur courante qui ne vous dit pas grand-chose par elle-même. Bien que cette expérience puisse être frustrante, la bonne nouvelle est qu’il existe des mesures simples que vous pouvez prendre pour résoudre le problème.

Dans ce billet, nous allons expliquer ce qu’est l’erreur « SSL Handshake Failed » et ce qui la provoque. Nous vous proposerons ensuite plusieurs méthodes pour la corriger.

Commençons !

Une introduction SSL Handshake

Avant d’approfondir les causes de l’erreur TLS ou SSL Handshake, il est utile de comprendre ce que c’est. Les protocoles SSL (Secure Sockets Layer) et TLS (Transport Layer Security) sont utilisés pour authentifier les transferts de données entre les serveurs et les systèmes externes tels que les navigateurs.

Les certificats SSL sont nécessaires pour sécuriser votre site web en utilisant le HTTPS. Nous n’approfondirons pas trop la différence entre TLS et SSL, car elle est mineure. Les termes sont souvent utilisés de manière interchangeable, aussi, par souci de simplicité, nous utiliserons « SSL » pour désigner les deux.

Une fois cette étape franchie, le SSL Handshake est la première étape du processus d’établissement d’une connexion HTTPS. Pour s’authentifier et établir la connexion, le navigateur de l’utilisateur et le serveur du site web doivent passer par une série de contrôles (le Handshake, ou la poignée de main), qui établissent les paramètres de connexion HTTPS.

Expliquons-nous : le client (généralement le navigateur) envoie une demande de connexion sécurisée au serveur. Après l’envoi de la demande, le serveur envoie une clé publique à votre ordinateur et vérifie cette clé par rapport à une liste de certificats. L’ordinateur génère alors une clé et la chiffre, en utilisant la clé publique envoyée par le serveur.

Pour faire court, sans le SSL Handshake, il n’y aura pas de connexion sécurisée. Cela peut constituer un risque important pour la sécurité. En outre, le processus comporte de nombreuses pièces mobiles.

Cela signifie qu’il existe de nombreuses possibilités que quelque chose tourne mal et provoque un échec du Handshake.

Comprendre les causes de l’erreur SSL Hanshake Failed

Un échec de SSL Handshake ou une erreur 525 signifie que le serveur et le navigateur n’ont pas pu établir une connexion sécurisée. Cela peut se produire pour diverses raisons.

En général, une erreur 525 signifie que le SSL Handshake entre un domaine utilisant Cloudflare et le serveur web d’origine a échoué :

Le message d'erreur 525 SSL handshake failed dans Google Chrome
Le message d’erreur 525 SSL handshake failed dans Google Chrome

Cependant, il est également important de comprendre que des erreurs SSL peuvent se produire du côté du client ou du serveur. Les causes courantes des erreurs SSL côté client sont les suivantes :

  • La date ou l’heure de l’appareil client est incorrecte.
  • Une erreur dans la configuration du navigateur.
  • Une connexion qui est interceptée par un tiers.

Parmi les causes côté serveur, on peut citer :

  • Un décalage de la suite de chiffres.
  • Un protocole utilisé par le client qui n’est pas pris en charge par le serveur.
  • Un certificat incomplet, non valable ou périmé.

En général, si le SSL Handshake échoue, le problème peut être attribué à un problème avec le site web ou le serveur et leurs configurations SSL.

Comment corriger l’erreur SSL Handshake Failed (5 méthodes)

Il y a plusieurs causes possibles à l’origine de l’erreur « SSL Handshake Failed ». Il n’y a donc pas de réponse simple à la question de savoir comment y remédier.

Heureusement, il existe une poignée de méthodes que vous pouvez utiliser pour commencer à explorer les problèmes potentiels et les résoudre un par un. Examinons cinq stratégies que vous pouvez utiliser pour tenter de corriger l’erreur de SSL Handshake.

1. Mettez à jour la date et l’heure de votre système

Commençons par une des causes les plus improbables, mais qui est incroyablement facile à corriger si c’est le problème : l’horloge de votre ordinateur.

Si votre système utilise une date et une heure erronées, cela peut interrompre le SSL Handshake. Lorsque l’horloge du système est différente de l’heure réelle, par exemple, si elle est réglée trop loin dans le futur, cela peut interférer avec la vérification du certificat SSL.

L’horloge de votre ordinateur peut avoir été mal réglée en raison d’une erreur humaine ou simplement d’un problème de réglage. Quelle qu’en soit la raison, il est bon de vérifier et de s’assurer que l’heure de votre système est correcte, et de la mettre à jour si elle ne l’est pas.

Bien sûr, si votre horloge affiche les bonnes informations, on peut supposer que ce n’est pas la source du problème de « SSL Handshake Failed ».

2. Vérifiez si votre certificat SSL est valide

Les dates d’expiration sont indiquées sur les certificats SSL, afin de s’assurer que les informations de validation restent exactes. En général, la validité de ces certificats dure entre six mois et deux ans.

Si un certificat SSL est révoqué ou expiré, le navigateur le détectera et ne pourra pas effectuer le SSL Handshake. Si cela fait plus d’un an environ que vous avez installé un certificat SSL sur votre site web, il est peut-être temps de le réémettre.

Pour connaître l’état de votre certificat SSL, vous pouvez utiliser un outil de vérification des certificats SSL tel que celui proposé par Qualys :

L'outil de test du serveur SSL sur le site de Qualys
L’outil de test du serveur SSL sur le site de Qualys

Cet outil est à la fois fiable et gratuit. Il vous suffit de saisir votre nom de domaine dans le champ « Hostname », puis de cliquer sur « Submit ». Une fois que le vérificateur a fini d’analyser la configuration SSL de votre site, il vous présentera quelques résultats :

La page de résultats de l'outil de contrôle SSL Qualys
La page de résultats de l’outil de contrôle SSL Qualys

Sur cette page, vous pouvez savoir si votre certificat est toujours valable et voir s’il a été révoqué pour une raison quelconque.

Dans les deux cas, la mise à jour de votre certificat SSL devrait résoudre l’erreur de poignée de main (et est essentielle pour assurer la sécurité de votre site et de votre boutique WooCommerce).

3. Configurez votre navigateur pour la prise en charge du dernier protocole SSL/TLS

Parfois, le meilleur moyen de déterminer la cause première d’un problème est de l’éliminer. Comme nous l’avons mentionné précédemment, l’échec du SSL Handshake peut souvent être dû à une mauvaise configuration du navigateur.

La façon la plus rapide de déterminer si un navigateur particulier est le problème est d’essayer de passer à un autre. Cela peut au moins aider à circonscrire le problème. Vous pouvez également essayer de désactiver les plugins et de réinitialiser votre navigateur à ses paramètres par défaut.

Un autre problème potentiel lié aux navigateurs est une inadéquation de protocole. Par exemple, si le serveur ne prend en charge que TLS 1.2, mais que le navigateur n’est configuré que pour TLS 1.0 ou TLS 1.1, il n’y a pas de protocole mutuellement supporté. Cela entraînera inévitablement un échec de SSL Handshake.

La manière dont vous pouvez vérifier si ce problème se produit varie en fonction du navigateur que vous utilisez. À titre d’exemple, nous allons voir comment le processus fonctionne dans Chrome. Tout d’abord, ouvrez votre navigateur et allez dans Paramètres > Avancés. Cela permettra d’élargir un certain nombre d’options de menu.

Dans la section Système, cliquez sur Ouvrir les paramètres du proxy de votre ordinateur :

La page des paramètres système dans Google Chrome
La page des paramètres système dans Google Chrome

Cela ouvrira une nouvelle fenêtre. Ensuite, sélectionnez l’onglet Avancé. Sous la section Sécurité, vérifiez si la case à côté de Utiliser TLS 1.2 est sélectionnée. Si ce n’est pas le cas, cochez cette option :

Les paramètres avancés des Propriétés Internet dans Windows
Les paramètres avancés des Propriétés Internet dans Windows

Il est également recommandé de décocher les cases pour SSL 2.0 et SSL 3.0.

Il en va de même pour les TLS 1.0 et TLS 1.1 puisqu’ils sont progressivement supprimés. Lorsque vous avez terminé, cliquez sur le bouton OK, et vérifiez si l’erreur de SSL Handshake a été résolue.

Notez que si vous utilisez Apple Safari ou Mac OS, il n’y a pas d’option pour activer ou désactiver les protocoles SSL. TLS 1.2 est automatiquement activé par défaut. Si vous utilisez Linux, vous pouvez vous référer au guide Red Hat sur le durcissement de TLS.

4. Vérifiez que votre serveur est correctement configuré pour prendre en charge le SNI

Il est également possible que l’échec de SSL Handshake soit causé par une mauvaise configuration de l’indication du nom du serveur (SNI). Le SNI est ce qui permet à un serveur web d’héberger en toute sécurité plusieurs certificats TLS pour une adresse IP.

Chaque site web sur un serveur possède son propre certificat. Cependant, si le serveur n’est pas compatible avec le protocole SNI, cela peut entraîner une défaillance de la poignée de main SSL, car le serveur peut ne pas savoir quel certificat présenter.

Il existe plusieurs moyens de vérifier si un site nécessite le SNI. Une option consiste à utiliser le test de serveur SSL de Qualys, dont nous avons parlé dans la section précédente. Saisissez le nom de domaine de votre site, puis cliquez sur le bouton « Soumettre ».

Sur la page de résultats, cherchez un message qui dit « Ce site ne fonctionne que dans les navigateurs supportant le SNI » :

La page de résultats résumés de l'outil de contrôle SSL Qualys
La page de résultats résumés de l’outil de contrôle SSL Qualys

Une autre approche pour détecter si un serveur utilise le SNI consiste à parcourir les noms de serveur dans le message « ClientHello ». Il s’agit d’un procédé plus technique, mais qui peut offrir beaucoup d’informations.

Il s’agit de vérifier l’en-tête « extended hello » pour un champ « server_name », afin de voir si les certifications correctes sont présentées.

Si vous êtes habitué à utiliser des outils tels que la boîte à outils OpenSSL et Wireshark, vous trouverez peut-être cette méthode préférable. Vous pouvez utiliser openssl s_client avec et sans l’option -servername :

# without SNI
 $ openssl s_client -connect host:port 

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

Si vous obtenez deux certificats différents avec le même nom, cela signifie que le SNI est pris en charge et correctement configuré.

Cependant, si la sortie des certificats renvoyés est différente, ou si l’appel sans SNI ne peut pas établir une connexion SSL, cela indique que le SNI est nécessaire mais pas correctement configuré. Pour résoudre ce problème, il peut être nécessaire de passer à une adresse IP dédiée.

5. S’assurer que les suites de chiffrement correspondent

Si vous n’avez toujours pas pu identifier la cause de l’échec de la poignée de main SSL, il se peut qu’elle soit due à une inadéquation de la suite de chiffrement. Si vous ne connaissez pas bien le terme, les « suites de chiffrement » désignent un ensemble d’algorithmes, notamment pour l’échange de clés, le chiffrement en masse et le code d’authentification des messages, qui peuvent être utilisés pour sécuriser les connexions réseau SSL et TLS.

Si les suites de chiffrement utilisées par un serveur ne prennent pas en charge ou ne correspondent pas à celles utilisées par Cloudflare, cela peut entraîner une erreur « SSL Handshake Failed ».

Lorsqu’il s’agit de déterminer s’il existe une inadéquation entre les suites de chiffrement, le test de serveur SSL de Qualys s’avère une fois de plus un outil utile.

Lorsque vous saisissez votre domaine et que vous cliquez sur « Submit », vous verrez apparaître une page d’analyse sommaire. Vous pouvez trouver les informations de chiffrement dans la section Cipher Suites :

La section Cipher Suites dans un rapport Qualys SSL
La section Cipher Suites dans un rapport Qualys SSL

Vous pouvez utiliser cette page pour découvrir quels chiffres et protocoles le serveur prend en charge. Vous devrez faire attention à ceux qui affichent le statut « faible ». En outre, cette section détaille également les algorithmes spécifiques des suites de chiffrement (Cipher Suite).

Pour corriger ce problème, vous pouvez comparer les résultats avec ce que votre navigateur prend en charge en utilisant l’outil Qualys SSL/TLS Capabilities of Your Browser. Pour des informations et des conseils plus détaillés sur les suites de chiffrement, nous vous recommandons également de consulter le guide ComodoSSLStore.

Résumé

L’erreur « SSL Handshake Failed » est l’un des types de problèmes liés au SSL les plus déroutants mais les plus courants. La gestion de cette erreur peut être stressante car elle a de nombreuses causes potentielles, y compris des problèmes côté client et côté serveur.

Toutefois, il existe des solutions fiables que vous pouvez utiliser pour identifier le problème et le résoudre. Voici cinq moyens que vous pouvez utiliser pour corriger l’erreur « SSL Handshake Failed » :

  1. Mettez à jour la date et l’heure de votre système.
  2. Vérifiez si votre certificat SSL est valide (et réémettez-le si nécessaire).
  3. Configurez votre navigateur pour qu’il prenne en charge les dernières versions de TLS/SSL.
  4. Vérifiez que votre serveur est correctement configuré pour prendre en charge le SNI.
  5. Assurez-vous que les suites de chiffrement (Cipher Suites) correspondent.