Vous installez un certificat Secure Sockets Layer (SSL) sur votre site WordPress afin qu’il puisse utiliser le protocole HTTPS pour des connexions sécurisées (sans ce certificat votre connexion restera sous le protocole HTTP, ce qui signifie une connexion non sécurisée pour votre site Web). Cependant, de nombreux problèmes peuvent survenir lors de la vérification d’un certificat SSL valide et de l’établissement d’une connexion entre le serveur de votre site Web et le navigateur du visiteur.
Si vous avez vu le message d’erreur « SSL Handshake Failed » et que vous vous demandez ce que cela signifie, dans cet article nous vous expliquons tout ce que vous avez besoin de savoir sur ce problème. C’est une erreur courante que vous pouvez résoudre en suivant quelques étapes simples.
I. Qu’est ce que le SSL Handshake ?
Avant de rechercher pourquoi le Handshake TLS ou SSL échoue, il est utile de comprendre ce qu’est exactement un SSL Handshake. Les protocoles Secure Sockets Layer (SSL) et Transport Layer Security (TLS) servent à authentifier les communications entre les serveurs et les systèmes externes tels que les navigateurs.
Les certificats SSL sont essentiels pour sécuriser votre site en utilisant le protocole HTTPS. La différence entre TLS et SSL n’est pas importante ici, nous n’aborderons pas ce détail dans cet article. Vous avez juste besoin de savoir, pour plus de simplicité, que le terme SSL est plus générique et plus couramment utilisé pour désigner les deux certificats. Après avoir choisi quel SSL vous utiliserez pour votre site Web, la prochaine étape est le fameux SSL Handshake (ou poignée de main) qui permettra d’établir une connexion HTTPS.
Pour s’authentifier et établir une connexion, le navigateur de l’utilisateur et le serveur du site Web doivent effectuer une série de vérifications (Handshake) qui définissent les paramètres de connexion HTTPS. Tout simplement, lorsqu’un client (généralement un navigateur) envoie une demande de connexion sécurisée au serveur. Après avoir envoyé la requête, le serveur communique sa clé publique à votre ordinateur et compare celle-ci à une liste de certificats. L’ordinateur génère alors la clé et la chiffre avec la clé publique envoyée par le serveur.
En bref, il n’y a pas de connexion sécurisée sans handshake SSL, et il y a de fortes probabilités pour que quelque chose ne se passe pas comme prévu pendant le processus du handshake.
1.1. Qu’est ce qui cause l’erreur SSL Handshake Failed
Lorsque vous voyez que le SSL Handshake a échoué ou qu’une erreur 525 apparaît sur votre écran, cela signifie que le serveur et le navigateur n’ont pas pu établir une connexion sécurisée, et il peut y avoir plusieurs raisons à cela. Une erreur 525 signifie généralement que le processus de vérification de connexion SSL entre un domaine utilisant Cloudflare et votre serveur Web d’origine a échoué. Il est également important de comprendre que des erreurs SSL peuvent se produire autant du côté client, que du côté serveur.
On retrouve comme causes courantes des erreurs SSL côté client :
- Date ou heure incorrecte sur l’appareil du client.
- Erreur de configuration du navigateur.
- Connexion interceptée par un tiers.
Les causes courantes côté serveur incluent :
- Chaîne de chiffres non concordante.
- Protocole utilisé par le client non pris en charge par le serveur.
- Certificat incomplet, invalide ou expiré.
En général, lorsque le Handshake SSL échoue, le problème peut être attribué au site Web ou au serveur et à leur configuration SSL.
II. 5 façons de corriger l’erreur SSL Handshake Failed
Il existe plusieurs causes possibles pour que l’erreur SSL Handshake Failed s’affiche. Il n’y a donc pas de réponse facile et toute prête sur la façon de la réparer. Cependant, il existe plusieurs méthodes que vous pouvez utiliser pour rechercher des problèmes potentiels et les résoudre un par un. Examinons les 5 stratégies que vous pouvez essayer pour corriger les erreurs dues au SSL Handshake.
2.1. Mettre à jour l’horloge
Commençons par l’une des causes les plus improbables. Cependant, si tel est le problème, il est très facile à résoudre, il s’agit de mettre à jour l’heure et la date de votre ordinateur. Le SSL Handshake peut être interrompu si une date et une heure erronées sont utilisées sur le système. Lorsque l’horloge système diffère de l’heure réelle, par exemple elle est réglée trop loin dans le futur, cela peut affecter l’authentification du certificat SSL. Ainsi, l’horloge de votre ordinateur n’est peut-être pas réglée correctement en raison d’une erreur humaine ou d’un problème de configuration. Quelle que soit la raison, c’est une bonne idée de vérifier que l’heure de votre système est correcte et de la mettre à jour si ce n’est pas le cas.
Bien sûr, si l’horloge affiche les informations correctes, nous pouvons supposer que ce n’est pas la cause de l’erreur SSL Handshake Failed.
2.2. Vérifier la validité du certificat SSL
Les certificats SSL ont une date d’expiration pour garantir la validité des informations de vérification. En règle générale, ces certificats sont valables de 6 mois à 2 ans. Si le certificat SSL est révoqué ou a expiré, le navigateur le repérera et ne pourra pas effectuer correctement le SSL Handshake. Si cela fait plus d’un an que vous avez installé un certificat SSL sur votre site Web, il est peut-être temps de vérifier la validité de celui-ci.
Pour vérifier l’état de votre certificat SSL, vous pouvez utiliser un outil de vérification (fiable et gratuit) de certificat SSL comme celui fourni par Qualys :
- Entrez simplement votre nom de domaine dans le champ Nom d’hôte et cliquez sur Soumettre.
Lorsque le vérificateur analyse la configuration SSL de votre site Web, il affiche plusieurs résultats. Sur la page de résultats, vous pouvez vérifier si le certificat est toujours valide ou s’il a été révoqué pour une quelconque raison.
Dans tous les cas, la mise à jour de votre certificat SSL corrigera le problème du Handshake (Mise à jour essentielle pour assurer la sécurité de votre site Web et de votre boutique WooCommerce).
2.3. S’assurer que le navigateur prenne en charge les protocoles SSL/TLS
Comme mentionné précédemment, les erreurs de négociation SSL peuvent être causées par une mauvaise configuration du navigateur. Le moyen le plus simple de déterminer s’il y a un problème avec un navigateur particulier est de passer à un autre navigateur. Cela aide au moins à réduire le problème. Vous pouvez également désactiver les plugins et réinitialiser votre navigateur sur ses paramètres par défaut.
Un autre problème potentiel avec les navigateurs peut se trouver dans les conflits de protocole. Par exemple, si le serveur ne prend en charge que TLS 1.2 et que le navigateur est configuré uniquement pour TLS 1.0 ou TLS 1.1, cela entraînera l’échec dans la vérification du SSL. Et la meilleure façon de savoir si ce problème se produit dépend du navigateur que vous utilisez.
Nous allons donc voir comment résoudre ce problème si vous utilisez Chrome :
- Ouvrez votre navigateur et accédez à Paramètres > Avancé
- Dans la section Système, cliquez sur Ouvrir les paramètres proxy de l’ordinateur. Cela ouvrira une nouvelle fenêtre
- Sélectionnez ensuite l’onglet Avancé, puis dans la section Sécurité, assurez-vous que la case à côté de Utiliser TLS 1.2 est cochée. Sinon, activez cette option.
- Nous vous recommandons également de décocher les cases SSL 2.0 et SSL 3.0.
- Faites de même pour la suppression de TLS 1.0 et TLS 1.1.
- Une fois cela fait, cliquez sur le bouton OK et vérifiez si l’erreur du SSL Handshake a été corrigée.
Notez qu’il n’y a pas d’option pour activer ou désactiver le protocole SSL lors de l’utilisation d’Apple Safari ou de Mac OS, TLS 1.2 est automatiquement activé par défaut.
2.4. Vérifier la configuration du serveur pour la prise en charge du SNI
Une mauvaise configuration de l’indication du nom du serveur (SNI) peut être une des causes de l’erreur SSL Handshake Failed. Le SNI permet aux serveurs Web d’héberger en toute sécurité plusieurs certificats TLS pour une seule adresse IP. Mais si le serveur n’est pas compatible avec le protocole SNI, le serveur peut ne pas reconnaître le certificat qu’il présente et le Handshake du SSL peut échouer.
Il existe plusieurs façons de déterminer si votre site nécessite SNI. Une option consiste à utiliser le test de serveur SSL sur Qualys :
- Entrez le nom de domaine de votre site Web et cliquez sur le bouton Soumettre.
- Sur la page de résultats recherchez le message « Ce site ne fonctionne que sur les navigateurs supportant le SNI ».
- Une autre façon de détecter si un serveur utilise un SNI consiste à parcourir le nom du serveur dans le message ClientHello (C’est un processus assez technique, mais il peut fournir beaucoup d’informations)
- Cela vérifie l’en-tête « extended hello » pour le champ « server_name » pour voir si le bon certificat est présenté.
Une autre méthode peut vous être recommandée si vous êtes à l’aise avec des outils tels que OpenSSL Toolkit et Wireshark :
- Vous pouvez utiliser openssl s_client avec ou sans l’option -servername.
Si vous obtenez deux certificats différents portant le même nom, cela signifie que le SNI est pris en charge et configuré correctement. Cependant, si la sortie du certificat renvoyé est différente, ou si un appel sans SNI ne parvient pas à établir une connexion SSL, cela indique que SNI est requis mais n’est pas correctement configuré. Pour résoudre ce problème, vous devrez peut-être basculer vers une adresse IP dédiée.
2.5. Vérifier les suites de chiffrement
Si vous ne parvenez toujours pas à déterminer la cause de l’échec du SSL Handshake, cela peut être dû à une incompatibilité de la suite de chiffrement. Si vous n’êtes pas familier avec le terme « suite de chiffrement », pas de paniques on vous explique tout. Il fait référence à un ensemble d’algorithmes que l’on retrouve dans les échange de clés, le chiffrement en masse et les codes d’authentification de message qui peuvent être utilisés pour sécuriser les connexions réseau SSL et TLS.
Si les suites de chiffrement utilisées par le serveur ne sont pas prises en charge ou ne correspondent pas à la suite de chiffrement utilisée par Cloudflare, vous pouvez obtenir une erreur SSL handshake failed. Le test de serveur SSL de Qualys semble à nouveau être un outil utile pour déterminer s’il existe une incompatibilité de suite de chiffrement :
- Après avoir saisi votre nom de domaine et cliqué sur Soumettre, vous serez redirigé vers une page d’analyse récapitulative.
- Pour plus d’informations sur le chiffrement, consultez la section Suites de chiffrement
- Sur cette page, vous pouvez voir les chiffrements et les protocoles pris en charge par le serveur. Vous devez faire attention à ceux qui indiquent un statut faible.
- De plus, les algorithmes de chiffrement spécifiques aux suites de chiffrement sont également décrits dans cette section.
Pour résoudre ce problème, vous pouvez utiliser l’outil Qualys SSL/TLS Capabilities of Your Browser et comparer les résultats avec ce que votre navigateur prend en charge.
En résumé :
L’erreur SSL Handshake Failed est l’un des problèmes liés au SSL les plus courants. La gestion de cette erreur peut être ennuyante puisqu’elle provient de nombreuses causes, notamment des problèmes côté client et côté serveur. Cependant, il existe une solution fiable pour identifier et résoudre le problème. Voici cinq façons de corriger l’erreur SSL Handshake Failed :
- Mettre à jour l’horloge du système
- Vérifier que le certificat SSL est valide
- Configurer le navigateur pour prendre en charge la dernière version de TLS/SSL
- S’assurer que le serveur est correctement configuré pour prendre en charge un SNI
- S’assurer que les suites de chiffrement correspondent
Vous avez désormais toutes les informations nécessaires pour résoudre votre problème lié à l’erreur SSL Handshake Failed et reprendre votre activité normalement.