Erreurs
❌ Erreur SSL/TLS "SSL_ERROR_RX_RECORD_TOO_LONG" — Causes et Solutions
🔒 SSL / TLS
HTTPS sur un port qui sert du HTTP — connexion SSL sur un service non SSL
SSL_ERROR_RX_RECORD_TOO_LONG (Firefox) ou ERR_SSL_PROTOCOL_ERROR (Chrome) indique que le client tente une connexion TLS mais reçoit du texte HTTP en clair — le serveur ne parle pas SSL sur ce port. C'est une erreur de configuration du serveur.⚠️ Causes possibles
VirtualHost HTTPS sans SSL configuré
Un vhost écoute sur le port 443 mais sans directive ssl on/listen 443 ssl
Connexion HTTPS vers un port HTTP
Le client tente https:// sur un port qui sert du HTTP (ex: https://IP:80)
Nginx : listen 443 sans ssl
Le port 443 est configuré mais le mot-clé 'ssl' manque dans la directive listen
Apache : mod_ssl non chargé
Le module mod_ssl n'est pas activé malgré une config SSL
Load balancer mal configuré
Le load balancer envoie du HTTPS vers un backend qui attend du HTTP
Proxy renvoyant http:// en interne
Nginx termine le TLS mais le backend reçoit http:// non chiffré — confusion
🔧 Solutions étape par étape
1
Identifier le problème rapidement
# Tester si le port 443 répond en SSL openssl s_client -connect monsite.fr:443 # Si erreur "wrong version number" ou "record too long" # → Le port 443 sert du HTTP, pas du HTTPS # Tester le port 80 pour comparaison curl -v http://monsite.fr:80 curl -v https://monsite.fr:443 # Voir ce que le serveur répond sur le port 443 echo "GET / HTTP/1.0" | nc monsite.fr 443 # Si réponse HTTP/1.1 → le port sert du HTTP non chiffré # Voir les ports en écoute ss -tulnp | grep -E ':80|:443' netstat -tulnp | grep -E ':80|:443'
2
Corriger la configuration Nginx
# MAUVAISE config (cause l'erreur) :
server {
listen 443; # ← manque 'ssl' !
server_name monsite.fr;
}
# BONNE config :
server {
listen 443 ssl; # ← ssl obligatoire !
server_name monsite.fr;
ssl_certificate /etc/letsencrypt/live/monsite.fr/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/monsite.fr/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
}
# Vérifier et recharger
nginx -t
systemctl reload nginx
# Tester
openssl s_client -connect monsite.fr:443 | grep "Server certificate\"3
Corriger la configuration Apache
# Activer mod_ssl si nécessaire a2enmod ssl systemctl restart apache2 # Configuration VirtualHost HTTPS correcteServerName monsite.fr SSLEngine on # ← obligatoire ! SSLCertificateFile /etc/ssl/certs/mon-cert.pem SSLCertificateKeyFile /etc/ssl/private/mon-key.pem SSLCertificateChainFile /etc/ssl/certs/chain.pem SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 # Vérifier apachectl configtest apachectl -M | grep ssl # Recharger systemctl reload apache2
4
Corriger un reverse proxy mal configuré
# Nginx — reverse proxy avec terminaison SSL correcte
server {
listen 443 ssl;
server_name monsite.fr;
ssl_certificate /etc/letsencrypt/live/monsite.fr/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/monsite.fr/privkey.pem;
location / {
proxy_pass http://localhost:8080; # Backend en HTTP (local = OK)
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme; # Indique HTTPS au backend
}
}🛡️ Comment éviter cette erreur
- ✅ Toujours inclure le mot-clé
ssldans la directivelisten 443 ssl;de Nginx - ✅ Après chaque modification de config, tester avec
nginx -touapachectl configtestavant de recharger - ✅ Utiliser Certbot avec
--nginxou--apachepour configurer automatiquement SSL correctement - ✅ Tester systématiquement avec
openssl s_client -connect HOST:443après toute configuration SSL
Ajouter Les Fibrés à mes sources préférées
Retrouvez plus souvent nos guides dans vos résultats Google