Comment corriger les erreurs de certificat SSL
Un avertissement du navigateur fait fuir les visiteurs dès leur arrivée, mais la cause tient généralement à quelques problèmes simples. Voici comment identifier le vôtre et le corriger.
Identifier le problème
Saisissez votre domaine dans le SSL Checker, ou exécutez cette commande sur n’importe quelle machine disposant d’OpenSSL :
openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer -dates
La sortie indique pour qui le certificat a été émis, par qui et à quelle date il expire. Comparez ces informations avec les sections ci-dessous.
Le certificat a expiré
C’est la cause la plus fréquente, et elle signifie généralement que le renouvellement automatique a échoué. Avec Let’s Encrypt et Certbot, testez d’abord le renouvellement, puis renouvelez :
sudo certbot renew --dry-run
sudo certbot renew
sudo systemctl reload nginx
Si le test échoue, la raison habituelle est que le port 80 est bloqué ou qu’une redirection empêche la requête de validation d’aboutir. Les plateformes d’hébergement renouvellent elles-mêmes les certificats : vérifiez tout de même que les DNS de votre domaine pointent toujours vers elles.
Le nom ne correspond pas
Le certificat doit mentionner l’adresse exacte utilisée par les visiteurs. Un certificat pour example.com ne couvre pas www.example.com si ce dernier n’est pas inclus. Réémettez-le avec les deux noms :
sudo certbot --nginx -d example.com -d www.example.com
La chaîne de certification est incomplète
Votre site peut fonctionner dans certains navigateurs et échouer dans d’autres, ou échouer sur les téléphones. Cela signifie généralement que le serveur n’envoie pas le certificat intermédiaire. Dans Nginx, pointez vers la chaîne complète et non vers le seul certificat :
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
Le cadenas est absent ou la page signale un contenu mixte
Le certificat est correct, mais la page charge une image ou un script en http://. Ouvrez la console du navigateur pour identifier le fichier concerné, puis remplacez l’URL par https://. Si votre site répond encore en HTTP simple, mettez en place une redirection et vérifiez-la avec le Redirect Checker.
Seule une personne voit l’erreur
Si le SSL Checker valide le certificat mais qu’un appareil signale une erreur, la cause se trouve sur cet appareil. Une horloge système incorrecte est la raison classique, suivie d’un antivirus ou d’un réseau d’entreprise qui inspecte le trafic.
Éviter que le problème ne se reproduise
- Vérifiez que le renouvellement automatique fonctionne avec un test à blanc après chaque modification du serveur.
- Programmez un rappel dans votre agenda ou une alerte de disponibilité avant la date d’expiration.
- Après avoir corrigé un domaine, ajoutez des en-têtes de sécurité comme HSTS, mais seulement une fois HTTPS fonctionnel partout.