« Votre connexion n’est pas privée » est l’erreur SSL la plus courante. Elle signifie que votre navigateur a détecté un problème avec le certificat SSL du site web et a refusé d’établir une connexion sécurisée. L’erreur apparaît sous forme de NET::ERR_CERT_* dans Chrome, « Avertissement : risque potentiel de sécurité » dans Firefox, ou « Cette connexion n’est pas privée » dans Safari.
Ce guide couvre les solutions pour les deux côtés : si vous êtes un visiteur qui voit l’erreur, et si vous êtes un propriétaire de site web dont les visiteurs la voient.
Si vous êtes un visiteur (solutions rapides)
Ces étapes corrigent les causes côté client — des problèmes sur votre appareil, pas sur le site web.
1. Recharger la page
L’erreur est parfois transitoire — un problème réseau pendant la négociation TLS. Appuyez sur F5 ou Ctrl+R.
2. Vérifier la date et l’heure de votre appareil
Les certificats SSL ont des dates de validité. Si l’horloge de votre ordinateur est incorrecte, le navigateur pense que le certificat est expiré ou pas encore valide. Solution :
- Windows : Paramètres → Heure et langue → Régler l’heure automatiquement
- macOS : Réglages Système → Général → Date et heure → Régler automatiquement
- Linux :
sudo timedatectl set-ntp true
3. Essayer le mode navigation privée/incognito
Si ça fonctionne en navigation privée mais pas en mode normal, une extension de navigateur interfère — probablement un antivirus, VPN ou bloqueur de publicités qui inspecte le trafic HTTPS. Désactivez les extensions une par une pour trouver le coupable.
4. Vider le cache du navigateur et l’état SSL
Votre navigateur a peut-être mis en cache un ancien certificat :
- Chrome : Paramètres → Confidentialité → Effacer les données de navigation → Images et fichiers en cache
- Windows : Propriétés Internet → Contenu → Effacer l’état SSL
- macOS : Trousseaux d’accès → rechercher le domaine → supprimer les entrées en cache
5. Vérifier votre réseau
Les proxys d’entreprise, les portails captifs Wi-Fi d’hôtel et certains VPN injectent leurs propres certificats. Essayez :
- Déconnecter le VPN et réessayer
- Changer de réseau (ex. : point d’accès mobile)
- Se connecter au portail captif si vous êtes sur un Wi-Fi d’hôtel/aéroport
6. Mettre à jour votre navigateur
Les anciens navigateurs peuvent ne pas faire confiance aux nouvelles Autorités de Certification ou ne pas prendre en charge le TLS moderne. Mettez à jour vers la dernière version.
Devriez-vous cliquer sur « Continuer quand même » ? Seulement si vous comprenez le risque et faites confiance au site (ex. : votre propre serveur de développement avec un certificat auto-signé). Ne contournez jamais l’avertissement sur les sites bancaires, de messagerie ou de commerce en ligne.
Si vous êtes le propriétaire du site web (corrections serveur)
Vos visiteurs voient cette erreur parce que quelque chose ne va pas avec votre configuration SSL. Voici comment diagnostiquer et corriger chaque cause.
Cause 1 : Certificat expiré
La cause la plus courante. Les certificats Let’s Encrypt expirent tous les 90 jours.
Diagnostic :
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -dates
Solution : Renouvelez votre certificat. Avec GetHTTPS, cela prend 5 minutes. Ensuite, remplacez les fichiers et rechargez votre serveur.
Cause 2 : Le certificat ne correspond pas au domaine
Le certificat a été émis pour example.com mais vous accédez à www.example.com (ou inversement).
Diagnostic :
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -ext subjectAltName
Solution : Obtenez un nouveau certificat qui inclut à la fois le domaine nu et www. Dans GetHTTPS, ajoutez à la fois example.com et www.example.com.
Cause 3 : Chaîne de certificats incomplète
Votre serveur n’envoie pas le certificat intermédiaire. Le navigateur ne peut pas construire le chemin de confiance de votre certificat à l’autorité de certification racine.
Diagnostic :
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | grep "Verify return code"
# "21 (unable to verify the first certificate)" = chaîne incomplète
Solution :
- Nginx : Utilisez
fullchain.pem(pascert.pem) dansssl_certificate - Apache : Ajoutez
SSLCertificateChainFile chain.pem
La chaîne de confiance expliquée →
Cause 4 : Certificat auto-signé
Les certificats auto-signés ne sont pas reconnus par les navigateurs — aucune CA ne se porte garante.
Solution : Remplacez-le par un vrai certificat de Let’s Encrypt (gratuit) ou d’une CA commerciale.
Cause 5 : Mauvais certificat servi
Si vous hébergez plusieurs sites sur un seul serveur, le mauvais certificat peut être servi (mauvaise configuration SNI).
Diagnostic :
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -subject
# Vérifiez que le CN correspond à votre domaine
Solution : Assurez-vous que chaque bloc server (Nginx) ou <VirtualHost> (Apache) a le bon ssl_certificate pour ce domaine.
Cause 6 : Version TLS trop ancienne
Votre serveur ne prend en charge que des versions TLS obsolètes (1.0/1.1) que les navigateurs ont abandonnées.
Solution :
# Nginx
ssl_protocols TLSv1.2 TLSv1.3;
# Apache
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
Cause 7 : Mode SSL « Flexible » de Cloudflare
Le mode « Flexible » de Cloudflare peut causer cette erreur lorsqu’il n’y a pas de certificat valide sur le serveur d’origine.
Solution : Installez un certificat sur votre serveur d’origine (GetHTTPS ou Cloudflare Origin CA) et passez au mode « Full (Strict) ».
Cause 8 : HSTS a mis en cache un état erroné
Si vous avez précédemment envoyé des en-têtes HSTS puis cassé HTTPS, les navigateurs refusent de se connecter via HTTP en solution de repli.
Solution : Restaurez HTTPS avec un certificat valide. Pour les tests, utilisez un max-age HSTS court (ex. : 300 secondes) jusqu’à ce que vous soyez sûr.
Référence des codes d’erreur
| Code d’erreur Chrome | Signification | Correction courante |
|---|---|---|
NET::ERR_CERT_DATE_INVALID | Certificat expiré ou pas encore valide | Renouveler le certificat ou corriger l’horloge système |
NET::ERR_CERT_COMMON_NAME_INVALID | Le domaine ne correspond pas au certificat | Obtenir un certificat pour le bon domaine |
NET::ERR_CERT_AUTHORITY_INVALID | Auto-signé ou CA non fiable | Utiliser une CA de confiance comme Let’s Encrypt |
NET::ERR_CERT_REVOKED | Le certificat a été révoqué | Obtenir un nouveau certificat |
NET::ERR_SSL_PROTOCOL_ERROR | Échec de la négociation TLS | Vérifier la configuration TLS du serveur |
NET::ERR_SSL_VERSION_OR_CIPHER_MISMATCH | Pas de version TLS/cipher en commun | Activer TLS 1.2+ sur le serveur |
SSL_ERROR_HANDSHAKE_FAILURE_ALERT | (Firefox) Négociation rejetée | Vérifier le certificat et la configuration du serveur |
Questions fréquentes
Est-il sûr de cliquer sur « Continuer » / « Accepter le risque » ?
Uniquement sur les sites auxquels vous faites confiance et dont vous comprenez le risque — comme votre propre serveur de développement avec un certificat auto-signé. Ne contournez jamais l’avertissement sur les sites bancaires, de commerce en ligne, de messagerie ou de réseaux sociaux. L’avertissement existe parce que quelqu’un pourrait intercepter votre trafic.
Je vois cette erreur sur mon propre site. Comment la corriger le plus rapidement ?
Allez sur GetHTTPS, obtenez un nouveau certificat gratuit, installez-le, rechargez votre serveur web. Cela prend 5 minutes. Si l’erreur persiste, vérifiez le code d’erreur — il vous dit exactement ce qui ne va pas (expiré, mauvais domaine, chaîne manquante, etc.).
L’erreur apparaît sur certains appareils mais pas d’autres
Généralement un problème de chaîne de confiance — votre serveur n’envoie pas le certificat intermédiaire. Certains navigateurs/OS ont mis en cache l’intermédiaire lors de visites précédentes, mais les nouveaux appareils ne l’ont pas vu. Corrigez en utilisant fullchain.pem sur votre serveur.
Mon certificat est valide mais je vois toujours l’erreur
Vérifiez : non-correspondance de domaine (www vs sans www), chaîne incomplète, HSTS ayant mis en cache un échec précédent, ou un proxy/CDN servant un certificat différent. Utilisez openssl s_client pour voir exactement quel certificat le serveur présente.