Sécurité

Certificat SSL et Let's Encrypt : Résoudre l'erreur OCSP et comprendre la migration vers les CRL

Diagnostic et résolution d'une erreur de certificat SSL (CRYPT_E_NO_REVOCATION_CHECK). Comprendre pourquoi Let's Encrypt abandonne l'OCSP au profit des CRL et l'impact sur votre serveur.

05 Feb 2026 4 min de lecture 39 vues
39

Lectures

4

Minutes

0

Partages

Dans un monde de plus en plus connecté, la sécurité des informations échangées sur Internet est cruciale. Les certificats SSL/TLS sont devenus des outils indispensables pour garantir la confidentialité et l'intégrité des données entre les utilisateurs et les serveurs web. Let's Encrypt, une autorité de certification innovante et à but non lucratif, a facilité l'accès à ces certificats, permettant à quiconque de sécuriser facilement son site web. Cependant, des défis subsistent, notamment l'erreur OCSP qui peut surgir lors de la vérification de la validité d'un certificat. Cet article examine en profondeur cette erreur et les récentes évolutions vers l'utilisation des Listes de Révocation de Certificats (CRL) par Let's Encrypt. Nous aborderons également les meilleures pratiques pour résoudre ces problèmes et assurer le bon fonctionnement de vos certificats SSL.

Comprendre la révocation des certificats

Pour garantir la sécurité des échanges, il est crucial de s'assurer que les certificats utilisés sont toujours valides. La révocation de certificats est un processus qui permet de déclarer un certificat comme invalide avant sa date d'expiration. Cela peut être nécessaire si, par exemple, la clé privée d'un certificat est compromise ou si le domaine associé est transféré.

OCSP et CRL : Deux méthodes de vérification

Deux méthodes principales existent pour vérifier l'état de révocation d'un certificat : le Protocole OCSP (Online Certificate Status Protocol) et les Listes de Révocation de Certificats (CRL). Le protocole OCSP permet aux clients de vérifier en temps réel l'état d'un certificat en interrogeant un serveur OCSP. En revanche, les CRL sont des listes publiées périodiquement par les autorités de certification, énumérant les certificats révoqués.

# Exemple de commande pour vérifier un certificat via OCSP
openssl ocsp -issuer issuer.pem -cert cert.pem -url http://ocsp.example.com

L'erreur OCSP dans Let's Encrypt

L'erreur OCSP est souvent rencontrée sous Windows lors de l'utilisation d'outils comme curl pour tester un site. Cette erreur, identifiée sous la forme schannel: next InitializeSecurityContext failed: CRYPT_E_NO_REVOCATION_CHECK (0x80092012), indique que le système n'a pas réussi à vérifier l'état de révocation du certificat via OCSP. Cela peut être dû à une absence de connectivité au serveur OCSP ou à une configuration incorrecte.

Origine de l'erreur

Cette erreur survient généralement lorsque le client ne parvient pas à contacter le serveur OCSP spécifié dans le certificat. Il est important de s'assurer que le réseau permet les connexions au service OCSP et que le pare-feu n'interfère pas.

Solutions possibles

Pour résoudre cette erreur, il est possible de :

  • Vérifier la connectivité réseau vers le serveur OCSP.
  • Configurer correctement le client pour utiliser OCSP.
  • Passer à l'utilisation des CRL si OCSP est problématique.
# Exemple de désactivation de la vérification OCSP dans curl
curl --ssl-no-revoke https://example.com

Transition de Let's Encrypt vers les CRL

Let's Encrypt a récemment introduit un changement significatif dans son infrastructure, favorisant l'utilisation des CRL par rapport à l'OCSP. Ce changement vise à améliorer la fiabilité et la simplicité de la vérification de l'état des certificats.

Les avantages des CRL

Contrairement à OCSP qui nécessite des requêtes en temps réel, les CRL permettent aux clients de télécharger périodiquement une liste de certificats révoqués. Cela peut améliorer les performances et réduire la dépendance à une connectivité constante.

// Exemple de vérification d'une CRL avec OpenSSL en PHP
$crl = file_get_contents('http://example.com/crl.pem');
$cert = openssl_x509_parse('path/to/cert.pem');
if (in_array($cert['serialNumber'], $crl)) {
    echo 'Certificat révoqué';
} else {
    echo 'Certificat valide';
}

Bonnes pratiques pour la gestion des certificats SSL

Pour garantir la sécurité et la fiabilité de vos certificats SSL, il est essentiel de suivre certaines bonnes pratiques :

Mise à jour régulière des certificats

Assurez-vous que vos certificats sont renouvelés avant leur expiration pour éviter les interruptions de service. Let's Encrypt propose des outils automatisés pour simplifier ce processus.

Surveillance des certificats

Utilisez des outils de surveillance pour détecter rapidement les problèmes potentiels avec vos certificats, que ce soit des erreurs de révocation ou des expirations imminentes.

Conseil pro : Automatiser le renouvellement et la vérification de vos certificats avec des outils comme Certbot peut vous éviter bien des tracas.

Cas d'usage réels et pièges courants

Dans la pratique, de nombreux administrateurs système rencontrent des problèmes lors de la gestion des certificats SSL. Voici quelques scénarios et solutions :

Certificats expirés

Un certificat expiré peut rendre un site inaccessible. Assurez-vous que vos systèmes de surveillance sont configurés pour vous alerter à l'avance.

Problèmes de mise en cache OCSP

Les caches OCSP peuvent parfois contenir des informations obsolètes. Dans ce cas, vider le cache ou passer aux CRL peut résoudre le problème.

Problème Cause possible Solution
Erreur OCSP Connectivité réseau Vérifier les pare-feu
Certificat expiré Renouvellement manqué Automatiser le renouvellement
Problème de cache Cache OCSP obsolète Nettoyer le cache ou utiliser CRL

Comparaison entre OCSP et CRL

Les deux méthodes de vérification ont leurs avantages et inconvénients. OCSP offre une vérification en temps réel mais nécessite une connectivité constante et peut être sujet à des problèmes de latence. Les CRL, quant à elles, sont plus résilientes aux interruptions de réseau mais peuvent contenir des informations légèrement obsolètes.

En choisissant la méthode qui convient le mieux à votre infrastructure, considérez des facteurs tels que la taille de votre organisation, votre tolérance aux interruptions de service et la complexité de votre réseau.

Conclusion

La gestion des certificats SSL est un aspect crucial de la sécurité web. Bien que Let's Encrypt facilite grandement le déploiement de ces certificats, des défis persistent, notamment en matière de vérification de révocation. Comprendre les différences entre OCSP et CRL, et savoir comment résoudre les erreurs courantes, comme l'erreur OCSP, peut vous aider à maintenir un environnement sécurisé. En suivant les bonnes pratiques et en restant informé des évolutions technologiques, vous pourrez naviguer sereinement dans le monde des certificats SSL.

En conclusion, l'adoption des CRL par Let's Encrypt représente une avancée significative vers une gestion plus fluide et plus fiable des certificats. En restant proactif et en automatisant autant que possible, vous pouvez vous assurer que votre site reste sécurisé et accessible à tous moments.

Comprendre la révocation de certificats : OCSP vs CRL

Quand un certificat SSL doit être révoqué (compromission de clé privée, changement de domaine, etc.), il existe deux mécanismes pour en informer les navigateurs. Comprendre la différence entre OCSP et CRL est essentiel pour diagnostiquer les erreurs de validation SSL.

OCSP (Online Certificate Status Protocol)

OCSP permet aux navigateurs de vérifier en temps réel si un certificat est révoqué en interrogeant un serveur OCSP de l'autorité de certification :

# Vérifier le statut OCSP d'un certificat
openssl s_client -connect jordaneyeno.site:443 -status 2>/dev/null | grep -A 10 "OCSP"

# Tester manuellement une réponse OCSP
openssl ocsp   -issuer /etc/letsencrypt/live/jordaneyeno.site/chain.pem   -cert /etc/letsencrypt/live/jordaneyeno.site/cert.pem   -url http://ocsp.int-x3.letsencrypt.org   -text

OCSP Stapling : la solution recommandée

L'OCSP Stapling permet au serveur web de pré-récupérer la réponse OCSP et de la transmettre directement au client, éliminant la requête vers le serveur OCSP et améliorant les performances :

# Configuration Nginx avec OCSP Stapling
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/jordaneyeno.site/chain.pem;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;

# Tester que le stapling fonctionne
openssl s_client -connect jordaneyeno.site:443 -status 2>/dev/null   | grep -i "OCSP Response Status"

Conseil pro : Si vous obtenez l'erreur "OCSP stapling failed" dans les logs Nginx, vérifiez que votre serveur peut atteindre le serveur OCSP de Let's Encrypt. Un pare-feu bloquant les requêtes sortantes vers ocsp.int-x3.letsencrypt.org est souvent la cause.

Renouvellement automatique avec Certbot

# Tester le renouvellement sans l'effectuer réellement
sudo certbot renew --dry-run

# Forcer le renouvellement d'un certificat spécifique
sudo certbot renew --cert-name jordaneyeno.site --force-renewal

# Vérifier le timer systemd de renouvellement automatique
sudo systemctl status certbot.timer

# Voir la date d'expiration du certificat actuel
sudo certbot certificates

# Vérifier manuellement avec openssl
echo | openssl s_client -connect jordaneyeno.site:443 2>/dev/null   | openssl x509 -noout -dates

Comparaison OCSP vs CRL

CritèreOCSPCRLOCSP Stapling
LatenceMoyenne (requête réseau)Haute (fichier volumineux)Très faible
ConfidentialitéFaible (CA voit les requêtes)BonneExcellente
FraîcheurTemps réelRetard (mise à jour périodique)Quelques heures
Charge serveurSur le serveur CASur le clientSur votre serveur
Support navigateursUniverselUniverselUniversel

Tags

SSL Let's Encrypt OCSP CRL HTTPS Apache

Partagez cet article

Twitter Facebook LinkedIn
JY
Jordane YENO

Developpeur Full Stack passionne par le web et les nouvelles technologies

En savoir plus

Articles similaires