Diagnostic et résolution des échecs de négociation SSL/TLS.
L'erreur "SSL Handshake Failed" se produit lorsque le client (navigateur) et le serveur ne parviennent pas à établir une connexion sécurisée. Le handshake SSL/TLS est un processus de négociation où les deux parties s'accordent sur les protocoles et les algorithmes de chiffrement à utiliser. Si cette négociation échoue, aucune communication sécurisée n'est possible.
Cette erreur est souvent plus technique que les autres erreurs SSL car elle implique la compatibilité entre les versions de protocoles et les suites de chiffrement. Elle peut survenir côté serveur (configuration incorrecte) ou côté client (navigateur trop ancien ou trop récent).
Dans ce guide, nous allons explorer les causes courantes de l'échec du handshake SSL et vous donner les outils pour diagnostiquer et résoudre le problème, que vous soyez administrateur serveur ou utilisateur final.
Voici comment cette erreur se manifeste :
Plusieurs situations peuvent provoquer cette erreur :
Suivez ces étapes pour identifier la cause :
Utilisez ces commandes pour diagnostiquer le problème :
#!/bin/bash
# Diagnostic handshake SSL
DOMAIN="example.com"
echo "=== Test TLS 1.2 ==="
openssl s_client -connect $DOMAIN:443 -tls1_2 -servername $DOMAIN </dev/null 2>&1 | grep -E "(Protocol|Cipher|Verify)"
echo ""
echo "=== Test TLS 1.3 ==="
openssl s_client -connect $DOMAIN:443 -tls1_3 -servername $DOMAIN </dev/null 2>&1 | grep -E "(Protocol|Cipher|Verify)"
echo ""
echo "=== Ciphers supportés ==="
nmap --script ssl-enum-ciphers -p 443 $DOMAIN 2>/dev/null | grep -E "(TLSv|accepted)"
Ces commandes testent les protocoles TLS supportés et listent les suites de chiffrement acceptées. Si TLS 1.2 et 1.3 échouent tous les deux, il y a un problème de configuration majeur.
Configurez votre serveur correctement pour éviter les échecs :
Les anciens navigateurs (IE 10, Safari 8) ne supportent que des protocoles obsolètes. Vous devez choisir entre sécurité et compatibilité.
Utilisez le générateur de configuration Mozilla SSL. Il propose trois profils : moderne, intermédiaire, et ancien.
Cela indique une incompatibilité de protocole ou cipher. Le client affecté utilise probablement une configuration obsolète.
Vérifiez la version de la bibliothèque SSL utilisée par votre client API. Mettez à jour vers une version supportant TLS 1.2+.
Cela dépend de votre serveur web. Sur Nginx, utilisez ssl_protocols TLSv1.2 TLSv1.3; sur Apache, SSLProtocol -all +TLSv1.2 +TLSv1.3.
Oui, MoniTao teste la connexion HTTPS complète. Si le handshake échoue, vous recevez une alerte avec le détail de l'erreur.
Les échecs de handshake SSL sont souvent causés par des configurations obsolètes ou incompatibles. Maintenez votre serveur à jour et utilisez les protocoles et ciphers modernes.
MoniTao surveille vos connexions HTTPS et vous alerte immédiatement si un problème de handshake est détecté. Configurez un monitor pour chaque domaine critique.
Commencez gratuitement, sans carte bancaire.