From 51b4f424498a76b9548927434b19f10288dd41db Mon Sep 17 00:00:00 2001 From: tips-of-mine <54597409+tips-of-mine@users.noreply.github.com> Date: Sun, 15 Jun 2025 09:55:18 +0200 Subject: [PATCH] Update create_root_cert.sh --- scripts/create_root_cert.sh | 57 ++++--------------------------------- 1 file changed, 5 insertions(+), 52 deletions(-) diff --git a/scripts/create_root_cert.sh b/scripts/create_root_cert.sh index 3631037..1879a22 100644 --- a/scripts/create_root_cert.sh +++ b/scripts/create_root_cert.sh @@ -17,66 +17,19 @@ chmod 777 "$ROOT_CA_DIR/certs" "$ROOT_CA_DIR/crl" "$ROOT_CA_DIR/newcerts" "$ROOT # Initialiser les fichiers requis par OpenSSL pour une CA touch "$ROOT_CA_DIR/index.txt" + echo 1000 > "$ROOT_CA_DIR/serial" # Numéro de série initial pour les certificats echo 1000 > "$ROOT_CA_DIR/crlnumber" # Numéro de série initial pour la CRL -# Créer le fichier openssl.cnf pour le Root CA -cat < "$ROOT_CNF" -[ ca ] -default_ca = CA_default - -[ CA_default ] -dir = $ROOT_CA_DIR # Répertoire où tout est stocké -certs = \$dir/certs # Répertoire des certificats émis -crl_dir = \$dir/crl # Répertoire des CRL (Listes de révocation de certificats) -database = \$dir/index.txt # Fichier d'index de la base de données (pour OpenSSL) -new_certs_dir = \$dir/newcerts # Emplacement par défaut pour les nouveaux certificats - -certificate = \$dir/certs/ca.cert.pem # Le certificat CA lui-même -serial = \$dir/serial # Le numéro de série actuel -crlnumber = \$dir/crlnumber # Le numéro de CRL actuel -crl = \$dir/crl.pem # Le fichier CRL lui-même -private_key = \$dir/private/ca.key.pem # La clé privée du CA -RANDFILE = \$dir/private/.rand # Fichier de nombres aléatoires privé - -x509_extensions = v3_ca # Extensions X509 à ajouter au certificat -name_opt = ca_default # Options de nom de sujet -cert_opt = ca_default # Options de certificat -default_days = 3650 # Durée de validité par défaut des certificats (10 ans) -default_crl_days = 30 # Durée avant la prochaine mise à jour CRL -default_md = sha256 # Utiliser SHA-256 par défaut -preserve = no # Conserver l'ordre des DN passé - -policy = policy_strict # Politique stricte pour le Root CA - -[ policy_strict ] -countryName = match -stateOrProvinceName = match -organizationName = match -organizationalUnitName = optional -commonName = supplied -emailAddress = optional - -[ v3_ca ] -# Extensions pour le certificat CA Root -subjectKeyIdentifier = hash -authorityKeyIdentifier = keyid:always,issuer -basicConstraints = critical, CA:true # C'est une CA, peut signer d'autres certificats -keyUsage = critical, digitalSignature, cRLSign, keyCertSign - -# Ajout de l'URL OCSP au certificat Root CA -# IMPORTANT: Remplacez ocsp.cert-gestion.local par votre vrai nom de domaine OCSP -authorityInfoAccess = OCSP;URI:http://ocsp.cert-gestion.local/ - -EOF - # Générer la clé privée du Root CA (2048 bits, sans passphrase pour la simplicité) -openssl genrsa -out "$ROOT_KEY" 2048 +openssl genrsa -out "$ROOT_KEY" 4096 + +# chmod 400 "$ROOT_KEY" # Permissions strictes pour la clé privée # Générer le certificat Root CA auto-signé openssl req -x509 -new -nodes -key "$ROOT_KEY" -sha256 -days 3650 -out "$ROOT_CERT" \ - -subj "/C=FR/ST=Hauts-de-France/L=Roubaix/O=GestionCertif/CN=GestionCertif Root CA" \ + -subj "/C=FR/ST=NORD/L=ROUBAIX/O=IT/OU=IT/emailAddress=sec@tips-mine.com/CN=intermediate-cert.$ROOT_DOMAIN/" \ -config "$ROOT_CNF" -extensions v3_ca chmod 444 "$ROOT_CERT" # Permissions en lecture seule pour le certificat