Quelqu'un a révoqué un certificat dans la console de la CA et un utilisateur ne peut plus se connecter. Le premier réflexe est de chercher l'annulation, et pour la plupart des PKI il n'y en a pas : la révocation est un fait énoncé sur un numéro de série, et le chemin de retour pris en charge est un nouveau certificat, pas un enregistrement inversé. Déroulez les contrôles ci-dessous dans l'ordre, car la réparation autorisée dépend du code de motif et de si la clé a un jour été exposée.

Identifiez le certificat, pas la personne

Les noms communs se répètent. Un utilisateur réinscrit au trimestre dernier peut détenir deux certificats portant le même CN et des numéros de série différents, et révoquer l'un laisse l'autre fonctionner. Établissez d'abord l'objet exact :

openssl x509 -in client.crt -noout -serial -issuer -subject -dates
openssl crl -in ca.crl -noout -text | head -40

Notez le numéro de série, l'émetteur, la date de révocation et le motif consigné dans la CRL. Confirmez ensuite quels appareils présentent ce numéro de série, car un certificat révoqué peut encore être installé sur un ordinateur portable, un téléphone et un routeur de secours, et un remplacement qui n'atteint qu'un seul d'entre eux provoque un second incident.

Un contrôle comportemental rapide confirme l'état sans rien changer :

openssl verify -crl_check -CAfile ca.crt -CRLfile ca.crl client.crt

S'il signale le certificat comme révoqué, la CRL et le client sont d'accord ; s'il valide proprement, le client que vous tenez n'est pas le révoqué, et la recherche continue.

Vérifiez si la CA a utilisé une suspension ou une révocation permanente

La RFC 5280 définit certificateHold comme un état temporaire et removeFromCRL comme le signal qui le libère. Ce cycle de vie est réel, mais ce n'est pas un bouton d'annulation général. Lire le code de motif vous dit si l'émetteur a jamais eu l'intention de prendre en charge la libération.

Le piège est de supposer qu'une intention temporaire implique un enregistrement temporaire. Si l'entrée de la CA porte keyCompromise ou cessationOfOperation, le certificat est révoqué définitivement, quoi qu'ait voulu faire la personne qui a cliqué. À l'inverse, une entrée marquée certificateHold sur une CA qui n'implémente pas la libération de suspension est permanente en pratique, car rien ne publiera jamais la libération.

Les CA basées sur OpenSSL illustrent la limite. La commande ca accepte les valeurs de -crl_reason, dont certificateHold et removeFromCRL, mais elle ne génère pas de CRL delta — la documentation d'OpenSSL CA signale cette limite pour sa sortie CRL. Une CRL complète qui omet simplement le numéro de série relève d'un autre modèle de publication qu'un delta qui dit "cette entrée est libérée", donc coller removeFromCRL dans une CA VPN basée sur OpenSSL ne produit pas la libération définie par les normes.

Si la clé a pu être exposée, remplacez-la

Un certificat révoqué est l'affirmation que cette clé n'est peut-être plus digne de confiance. Si la révocation était juste sur le fond — ordinateur portable perdu, clé copiée sur un disque partagé, clé privée collée dans un ticket — restaurer le même certificat inverse une décision de sécurité qui fonctionnait comme prévu.

Émettez une nouvelle paire de clés via le processus d'inscription, distribuez le nouveau profil et laissez l'ancien numéro de série révoqué pour toute sa durée de vie. Mettez à jour tout ce qui épingle l'identité par numéro de série ou empreinte, y compris les listes d'admission, les inventaires d'appareils et la supervision qui attend un certificat précis.

L'argument de commodité pour restaurer l'ancien est réel, mais il faut y répondre explicitement et non en silence. "L'utilisateur a besoin d'accéder aujourd'hui" est une raison d'accélérer l'émission, pas une raison de dérévoquer une clé dont vous ne pouvez pas rendre compte.

S'il s'agissait d'une erreur administrative, remplacez sous contrôle

Quand la révocation était simplement erronée et que la clé n'a jamais été exposée, la réparation reste un remplacement contrôlé et non une modification. Utilisez le processus pris en charge de l'émetteur, gardez le numéro de série et l'historique d'émission intacts, et évitez les deux raccourcis tentants : inverser le caractère d'état dans index.txt de R à V, et supprimer la ligne d'émission pour qu'un nouveau certificat puisse réutiliser le numéro de série.

Sur une CA OpenSSL, la base de données est séparée par des tabulations et facile à mal lire, ce qui rend l'édition manuelle tentante :

awk -F'\t' '$1=="R" {print $4, $3, $6}' index.txt

Lisez-la, ne l'écrivez pas. Modifier le fichier change la prochaine CRL sans aucune trace d'audit, et toute seconde instance de CA ou sauvegarde qui détient encore la ligne d'origine sera en désaccord plus tard.

Après avoir émis le remplacement, publiez une CRL fraîche via le mécanisme habituel et laissez les clients la récupérer. Supprimer une CRL, réduire sa durée de vie à néant ou désactiver la vérification de révocation dans le profil client répare un utilisateur en affaiblissant toutes les autres révocations que la CA a jamais publiées.

Confirmez une nouvelle admission et conservez l'enregistrement

Testez avec une nouvelle connexion, pas avec la session déjà ouverte. Un tunnel actif peut ne pas réexécuter les contrôles d'admission qu'effectue une nouvelle poignée de main, et les caches de CRL font qu'un client peut continuer à se connecter jusqu'à son rafraîchissement. Déconnectez, reconnectez, et confirmez dans le journal du serveur quel numéro de série a été admis.

Consignez ce qui s'est passé tant que c'est frais : quel numéro de série a été révoqué, par qui, avec quel motif, quel remplacement a été émis et quand la CRL a été republiée. Cet enregistrement rend possible la prochaine revue de révocation, et il constitue aussi la preuve que l'erreur a été traitée plutôt que dissimulée.

Pour de courtes suspensions à l'avenir, utilisez un mécanisme de pause d'admission si le déploiement en dispose — un compte désactivé au niveau de l'identité, une appartenance à un groupe retirée, un profil client retenu. Cela garde une décision de politique temporaire séparée de la question de savoir si un certificat émis est encore digne de confiance, et c'est exactement la distinction qui s'est perdue la première fois.

Articles similaires