mirror of
https://github.com/tips-of-mine/gestion-certificats2.git
synced 2025-06-28 11:38:42 +02:00
Add files via upload
This commit is contained in:
55
scripts/revoke_cert.sh
Normal file
55
scripts/revoke_cert.sh
Normal file
@ -0,0 +1,55 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Ce script révoque un certificat simple émis par un CA intermédiaire.
|
||||
# Il met également à jour la CRL (Certificate Revocation List) du CA émetteur.
|
||||
# Il est appelé par l'application PHP.
|
||||
|
||||
# Arguments :
|
||||
# $1: Nom du certificat à révoquer (ex: www.finance.cert)
|
||||
# $2: Nom du périmètre fonctionnel (pour trouver le CA intermédiaire qui l'a émis)
|
||||
|
||||
CERT_BASE_NAME="$1" # Ex: www.finance.cert (sans l'extension .pem)
|
||||
FUNCTIONAL_PERIMETER_NAME="$2"
|
||||
|
||||
if [ -z "$CERT_BASE_NAME" ] || [ -z "$FUNCTIONAL_PERIMETER_NAME" ]; then
|
||||
echo "Usage: $0 <cert_base_name> <functional_perimeter_name>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
INTERMEDIATE_CA_DIR="/opt/tls/intermediate/$FUNCTIONAL_PERIMETER_NAME"
|
||||
INTERMEDIATE_CNF="$INTERMEDIATE_CA_DIR/openssl.cnf"
|
||||
CERT_PATH="$INTERMEDIATE_CA_DIR/certs/${CERT_BASE_NAME}.cert.pem"
|
||||
CRL_PATH="$INTERMEDIATE_CA_DIR/crl/crl.pem"
|
||||
|
||||
echo "Démarrage de la révocation du certificat '$CERT_BASE_NAME' pour le périmètre '$FUNCTIONAL_PERIMETER_NAME'..."
|
||||
|
||||
# Vérifier si le certificat existe physiquement et si le CA intermédiaire est prêt
|
||||
if [ ! -f "$CERT_PATH" ]; then
|
||||
echo "Erreur: Le certificat '$CERT_PATH' n'existe pas."
|
||||
exit 1
|
||||
fi
|
||||
if [ ! -f "$INTERMEDIATE_CNF" ]; then
|
||||
echo "Erreur: Le fichier de configuration OpenSSL pour le CA intermédiaire '$FUNCTIONAL_PERIMETER_NAME' n'existe pas."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Révoquer le certificat
|
||||
# Utilise -batch pour éviter les invites interactives
|
||||
openssl ca -batch -config "$INTERMEDIATE_CNF" -revoke "$CERT_PATH"
|
||||
|
||||
# Vérifier le succès de la révocation via le code de sortie
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Erreur: La révocation du certificat '$CERT_BASE_NAME' a échoué."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Certificat '$CERT_BASE_NAME' révoqué avec succès."
|
||||
|
||||
# Mettre à jour la CRL (liste de révocation de certificats)
|
||||
openssl ca -batch -config "$INTERMEDIATE_CNF" -gencrl -out "$CRL_PATH"
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Avertissement: La génération de la CRL a échoué. Veuillez vérifier manuellement."
|
||||
else
|
||||
echo "CRL mise à jour et disponible à : $CRL_PATH"
|
||||
fi
|
Reference in New Issue
Block a user