Add files via upload

This commit is contained in:
tips-of-mine
2025-06-14 19:03:54 +02:00
committed by GitHub
parent 2df60f551b
commit b17c666c5a
51 changed files with 4363 additions and 0 deletions

55
scripts/revoke_cert.sh Normal file
View 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