Comment révoquer un certificate openssl lorsque vous n’avez pas le certificate

J’ai créé un certificate openssl signé par l’autorité de certificateion créée sur la machine locale.

Ce certificate a été supprimé et je ne l’ai plus.

Il est impossible de créer un autre certificate avec le même nom commun car openssl ne l’autorise pas et génère l’erreur suivante:

failed to update database TXT_DB error number 2 

Comment puis-je révoquer le certificate pour en créer un autre avec le même nom commun?

(Basé sur la réponse de Nilesh ) Dans la configuration par défaut, openssl conservera des copies de tous les certificates signés dans /etc/ssl/newcerts , nommés par son numéro d’index. Donc grep /etc/ssl/index.txt pour obtenir le numéro de série de la clé à révoquer, par exemple 1013, puis exécutez la commande suivante:

 openssl ca -revoke /etc/ssl/newcerts/1013.pem #replacing the serial number 

Le -keyfile et -cert mentionné dans la réponse de Nilesh ne sont requirejs que si cela diffère de vos parameters openssl.cnf .


Sinon, vous pouvez également modifier /etc/ssl/index.txt.attr pour contenir la ligne

 unique_subject = no 

pour autoriser plusieurs certificates avec le même nom commun. Si vous avez publié le certificate d’origine, la révocation de l’ancien est la solution préférable, même si vous n’exécutez pas de serveur OSCP ou ne fournissez pas de listes de révocation de certificates.

Je n’ai pas essayé mais il semblerait que vous ayez besoin de quelque chose comme ça.

openssl ca -revoke bad_crt_file -keyfile ca_key -cert ca_crt

openssl enregistre automatiquement une copie de votre cert dans le répertoire newcerts. Vous pouvez vouloir le vérifier pour récupérer votre certificate. Malheureusement, vous avez besoin d’un certificate présent pour le révoquer. Voir les informations suivantes pour plus d’informations: http://www.mad-hacking.net/documentation/linux/security/ssl-tls/revoking-certificatee.xml