#!/bin/bash # Ce script crée le certificat Root CA (Certificate Authority) auto-signé. # Il est destiné à être exécuté une seule fois, au premier lancement de l'application. # Récupérer le domaine racine depuis le premier argument ROOT_DOMAIN=$1 # Vérifier si ROOT_DOMAIN est fourni if [ -z "$ROOT_DOMAIN" ]; then echo "Erreur: Le domaine racine (ROOT_DOMAIN) doit être fourni en argument." echo "Usage: $0 " exit 1 fi ROOT_CA_DIR="/opt/tls/root" ROOT_KEY="$ROOT_CA_DIR/private/ca.key.pem" ROOT_CERT="$ROOT_CA_DIR/certs/ca.cert.pem" ROOT_CNF="$ROOT_CA_DIR/openssl.cnf" echo "Démarrage de la création du certificat Root CA dans $ROOT_CA_DIR..." # Créer les dossiers nécessaires pour la PKI Root mkdir -p "$ROOT_CA_DIR/certs" "$ROOT_CA_DIR/crl" "$ROOT_CA_DIR/newcerts" "$ROOT_CA_DIR/private" "$ROOT_CA_DIR/csr" chmod 777 "$ROOT_CA_DIR/certs" "$ROOT_CA_DIR/crl" "$ROOT_CA_DIR/newcerts" "$ROOT_CA_DIR/private" "$ROOT_CA_DIR/csr" # 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 # Générer la clé privée du Root CA (2048 bits, sans passphrase pour la simplicité) 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=NORD/L=ROUBAIX/O=IT/OU=IT/emailAddress=sec@tips-mine.com/CN=ca.$ROOT_DOMAIN/" \ -config "$ROOT_CNF" -extensions v3_ca chmod 444 "$ROOT_CERT" # Permissions en lecture seule pour le certificat echo "Certificat Root CA créé avec succès : $ROOT_CERT"