ssl tls security certificates web-development

Résoudre l'erreur 'certificate expired' et les erreurs SSL/TLS courantes

Un guide complet pour corriger les erreurs SSL/TLS comme 'ERR_CERT_DATE_INVALID', 'self-signed certificate' et 'handshake failed'. Apprenez à sécuriser votre site web.

2026-04-11

Résoudre "certificate expired" et les erreurs SSL/TLS courantes : Un guide complet

Le SSL (Secure Sockets Layer) et son successeur, le TLS (Transport Layer Security), sont les protocoles qui assurent la sécurité d'Internet. Ils garantissent que les données envoyées entre votre navigateur et un site web sont cryptées et privées. Cependant, quand quelque chose ne va pas avec un certificat, les navigateurs affichent des pages d'avertissement effrayantes qui peuvent faire fuir 99 % de vos visiteurs.

Dans ce guide, nous expliquerons les erreurs SSL/TLS les plus courantes, pourquoi elles se produisent et comment les corriger pour les utilisateurs et les propriétaires de sites web.


1. Messages d'erreur SSL/TLS courants

Selon votre navigateur (Chrome, Firefox, Safari) ou votre environnement de développement (Node.js, Python), vous verrez différents codes d'erreur :

  • Chrome : ERR_CERT_DATE_INVALID, ERR_CERT_AUTHORITY_INVALID, ERR_CERT_COMMON_NAME_INVALID, ERR_SSL_PROTOCOL_ERROR
  • Node.js : CERT_HAS_EXPIRED, UNABLE_TO_VERIFY_LEAF_SIGNATURE, SELF_SIGNED_CERT_IN_CHAIN
  • Python (Requests) : SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed
  • Firefox : SEC_ERROR_EXPIRED_CERTIFICATE, MOZILLA_PKIX_ERROR_SELF_SIGNED_CERT

2. Causes principales et solutions

2.1 "certificate expired" (ERR_CERT_DATE_INVALID)

Les certificats SSL sont délivrés pour une période spécifique (généralement de 90 jours à 1 an). Une fois cette date passée, le certificat n'est plus valide.

La cause : Le propriétaire du site web a oublié de renouveler le certificat, ou le processus de renouvellement automatique (comme Let's Encrypt) a échoué.

La solution :

  • Pour les propriétaires : Renouvelez votre certificat immédiatement. Si vous utilisez Let's Encrypt, vérifiez vos journaux certbot ou votre configuration client ACME.
  • Pour les utilisateurs : Vérifiez la date et l'heure système de votre ordinateur. Si votre horloge est fausse, le navigateur pensera qu'un certificat valide a expiré.

2.2 "self-signed certificate" (ERR_CERT_AUTHORITY_INVALID)

Par défaut, les navigateurs ne font confiance qu'aux certificats délivrés par une "Autorité de Certification" (CA) connue comme DigiCert ou Let's Encrypt. Un certificat auto-signé (self-signed certificate) est un certificat que vous avez créé vous-même.

La cause :

  • Utilisation d'un certificat auto-signé sur un site web de production.
  • Une CA privée ou d'entreprise qui n'a pas été ajoutée au magasin "Racine de confiance" de votre ordinateur.

La solution :

  • Pour la production : Obtenez un certificat gratuit de Let's Encrypt ou un certificat payant d'une CA commerciale.
  • Pour le développement : Il est acceptable d'utiliser des certificats auto-signés localement, mais vous devrez dire à vos outils de leur faire confiance ou contourner la vérification (bien que ce dernier soit préjudiciable à la sécurité).

2.3 "certificate chain incomplete" (UNABLE_TO_VERIFY_LEAF_SIGNATURE)

Un certificat SSL n'est pas seulement un fichier ; c'est une chaîne de confiance remontant jusqu'à une CA racine. Si un certificat "intermédiaire" (une CA intermédiaire) manque dans la configuration de votre serveur, le navigateur ne peut pas vérifier la chaîne.

La cause : Le serveur ne fournit que le certificat "Leaf" (du site) et non la chaîne complète ou "Fullchain" (Site + Intermédiaire).

La solution : Assurez-vous que votre serveur web (Nginx, Apache) est configuré pour utiliser le fichier fullchain.pem (ou équivalent) fourni par votre CA.

2.4 "SSL handshake failed"

Il s'agit d'une erreur large qui se produit lors de la "poignée de main" (handshake) initiale entre le client et le serveur.

La cause :

  • Protocoles incompatibles (ex: le client ne supporte que le TLS 1.0, mais le serveur exige le TLS 1.3).
  • Suites de chiffrement incompatibles.
  • Pare-feu ou proxy côté serveur bloquant la connexion.

La solution : Vérifiez la configuration TLS de votre serveur. Nous vous recommandons d'utiliser le Générateur de configuration SSL de Mozilla pour obtenir des paramètres sécurisés et compatibles.


3. Dépannage avancé

3.1 Problèmes de SNI (Server Name Indication)

Sur les serveurs modernes hébergeant plusieurs sites web sur une seule adresse IP, le serveur doit savoir quel certificat afficher. Si le client ne supporte pas le SNI (rare aujourd'hui), le serveur pourrait afficher le mauvais certificat, entraînant une erreur COMMON_NAME_INVALID.

3.2 HSTS (HTTP Strict Transport Security)

Si un site utilise HSTS, le navigateur refusera de laisser l'utilisateur "continuer quand même" en cas d'erreur SSL. C'est une fonction de sécurité pour empêcher les attaques de type "Man-in-the-Middle". Solution : Vous devez corriger l'erreur SSL ; il n'y a pas de contournement pour le HSTS.


4. Prévention et bonnes pratiques

  1. Renouvellement automatique : Utilisez toujours un service avec renouvellement automatique (comme Let's Encrypt avec Certbot ou le SSL géré de Cloudflare).
  2. Surveillance : Utilisez un service pour surveiller l'expiration et la santé de votre certificat SSL.
  3. Utilisez la chaîne complète : Fournissez toujours la chaîne de certificats complète dans votre configuration serveur.
  4. Désactivez les protocoles faibles : Désactivez SSLv2, SSLv3, TLS 1.0 et TLS 1.1. N'autorisez que le TLS 1.2 et 1.3.

5. FAQ : Questions fréquemment posées

Q : Est-il sûr de cliquer sur "Continuer quand même" lors d'un avertissement SSL ?

R : Seulement si vous êtes un développeur testant votre propre site local. Ne le faites jamais sur un site public, surtout pour les banques, les e-mails ou les réseaux sociaux, car cela vous rend vulnérable au vol de données.

Q : Pourquoi mon site fonctionne-t-il sur ordinateur mais affiche une erreur SSL sur mobile ?

R : C'est généralement un problème de certificate chain incomplete (chaîne de certificat incomplète). Les navigateurs de bureau parviennent mieux à "combler les lacunes" des certificats intermédiaires manquants, alors que les navigateurs mobiles sont beaucoup plus stricts.

Q : Est-ce que Cloudflare corrige les erreurs SSL ?

R : Cloudflare peut masquer les erreurs SSL entre l'utilisateur et Cloudflare, mais vous avez toujours besoin d'un certificat valide (ou au moins un certificat Cloudflare Origin) entre Cloudflare et votre serveur pour être totalement sécurisé.


6. Outil de vérification rapide

Besoin d'inspecter un certificat ou de vérifier une chaîne ? Utilisez notre SSL Certificate Checker & Decoder. Il vous permet de :

  • Décoder les fichiers PEM et CRT pour voir les dates d'expiration et les infos de l'émetteur.
  • Vérifier les chaînes de certificats et identifier les intermédiaires manquants.
  • Convertir entre les formats comme PEM, DER et PFX.

Erreurs liées

  • Résoudre les erreurs 'Unexpected token in JSON'
  • Comment corriger les erreurs 'invalid base64 string'
  • Résoudre 'JWT expired' et les erreurs JWT courantes