- fix de la creation du .pfx & optimisation
This commit is contained in:
parent
b209f850a2
commit
d375f0ca4c
|
|
@ -6,6 +6,8 @@ CONFIG_DEB_INSTALL_DEFAULT_CA_SERVER="192.168.0.110"
|
||||||
CONFIG_DEB_INSTALL_DEFAULT_CA_WILDCARD="*.server.home"
|
CONFIG_DEB_INSTALL_DEFAULT_CA_WILDCARD="*.server.home"
|
||||||
CONFIG_DEB_INSTALL_DEFAULT_CA_SERVICES="gitea nginx apache2 mysql postgresql jellyfin"
|
CONFIG_DEB_INSTALL_DEFAULT_CA_SERVICES="gitea nginx apache2 mysql postgresql jellyfin"
|
||||||
CONFIG_DEB_INSTALL_DEFAULT_CA_CRON="STEP-CA-RENEWAL"
|
CONFIG_DEB_INSTALL_DEFAULT_CA_CRON="STEP-CA-RENEWAL"
|
||||||
|
CONFIG_DEB_INSTALL_DEFAULT_CA_STEP="step-cli_0.24.4_amd64.deb"
|
||||||
|
CONFIG_DEB_INSTALL_DEFAULT_CA_INSTALL_PATH="/etc/ssl/wildcard"
|
||||||
CONFIG_DEB_INSTALL_CRON_UPDATE="CONFIG_DEB_INSTALL_CRON_UPDATE"
|
CONFIG_DEB_INSTALL_CRON_UPDATE="CONFIG_DEB_INSTALL_CRON_UPDATE"
|
||||||
|
|
||||||
CONFIG_DEB_INSTALL_JSON='[
|
CONFIG_DEB_INSTALL_JSON='[
|
||||||
|
|
|
||||||
Binary file not shown.
286
func/deb_sys.sh
286
func/deb_sys.sh
|
|
@ -135,8 +135,8 @@ check_deb_sys_clone_ssh_key(){
|
||||||
}
|
}
|
||||||
|
|
||||||
check_deb_sys_cert_install(){
|
check_deb_sys_cert_install(){
|
||||||
local MARKER="# $CONFIG_DEB_INSTALL_DEFAULT_CA_CRON"
|
local marker="# $CONFIG_DEB_INSTALL_DEFAULT_CA_CRON"
|
||||||
if crontab -l 2>/dev/null | grep -q "$MARKER"; then
|
if crontab -l 2>/dev/null | grep -q "$marker"; then
|
||||||
#return 0
|
#return 0
|
||||||
return 1
|
return 1
|
||||||
else
|
else
|
||||||
|
|
@ -145,8 +145,8 @@ check_deb_sys_cert_install(){
|
||||||
}
|
}
|
||||||
|
|
||||||
check_deb_sys_script_update(){
|
check_deb_sys_script_update(){
|
||||||
local MARKER="# $CONFIG_DEB_INSTALL_CRON_UPDATE"
|
local marker="# $CONFIG_DEB_INSTALL_CRON_UPDATE"
|
||||||
if crontab -l 2>/dev/null | grep -q "$MARKER"; then
|
if crontab -l 2>/dev/null | grep -q "$marker"; then
|
||||||
#return 0
|
#return 0
|
||||||
return 1
|
return 1
|
||||||
else
|
else
|
||||||
|
|
@ -563,108 +563,174 @@ EOF"
|
||||||
|
|
||||||
do_deb_sys_cert_install(){
|
do_deb_sys_cert_install(){
|
||||||
|
|
||||||
local CA_IP WILDCARD_DOMAIN CA_URL CA_FINGERPRINT BASE_DOMAIN MARKER VERSION URL ROOT_CRT
|
local ca_ip wildcard_domain ca_url ca_fingerprint base_domain marker root_crt input_ip step_path temp_root \
|
||||||
|
system_target inter_target server_crt cert_group load_state unit svc_user current_group \
|
||||||
|
cert_dir cert_crt cert_key cert_key cert_pfx pfx_cmd pfx_input step_bin renew_cmd restart_cmd="" \
|
||||||
|
unit full_command cert_fullchain
|
||||||
|
|
||||||
msg_info "=== Configuration Automatisée du Client PKI ==="
|
msg_info "=== Configuration Automatisée du Client PKI ==="
|
||||||
|
|
||||||
# 1. Saisie des informations de base
|
# 1. Saisie des informations de base
|
||||||
read -rp "IP du serveur CA [${CONFIG_DEB_INSTALL_DEFAULT_CA_SERVER}] : " INPUT_IP
|
read -rp "IP du serveur CA [${CONFIG_DEB_INSTALL_DEFAULT_CA_SERVER}] : " input_ip
|
||||||
CA_IP=${INPUT_IP:-${CONFIG_DEB_INSTALL_DEFAULT_CA_SERVER}}
|
ca_ip=${input_ip:-${CONFIG_DEB_INSTALL_DEFAULT_CA_SERVER}}
|
||||||
|
|
||||||
read -rp "Domaine Wildcard [${CONFIG_DEB_INSTALL_DEFAULT_CA_WILDCARD}] : " INPUT_DOMAIN
|
read -rp "Domaine Wildcard [${CONFIG_DEB_INSTALL_DEFAULT_CA_WILDCARD}] : " INPUT_DOMAIN
|
||||||
WILDCARD_DOMAIN=${INPUT_DOMAIN:-${CONFIG_DEB_INSTALL_DEFAULT_CA_WILDCARD}}
|
wildcard_domain=${INPUT_DOMAIN:-${CONFIG_DEB_INSTALL_DEFAULT_CA_WILDCARD}}
|
||||||
|
|
||||||
# Petit bonus : on s'assure que le CA_URL est bien formé
|
# Petit bonus : on s'assure que le ca_url est bien formé
|
||||||
CA_URL="https://$(echo "$CA_IP" | sed 's|https://||')"
|
#ca_url="https://$(echo "$ca_ip" | sed 's|https://||')"
|
||||||
|
|
||||||
echo -e "Configuration retenue : IP=$CA_IP | Domaine=$WILDCARD_DOMAIN"
|
echo -e "Configuration retenue : IP=$ca_ip | Domaine=$wildcard_domain"
|
||||||
|
|
||||||
CA_URL="https://$CA_IP"
|
ca_url="https://$ca_ip"
|
||||||
|
|
||||||
|
# ==================================================================
|
||||||
|
# [1/7] Récupération de l'empreinte via HTTPS
|
||||||
|
# ==================================================================
|
||||||
|
|
||||||
# 2. Récupération automatique de la Fingerprint via HTTPS
|
# 2. Récupération automatique de la Fingerprint via HTTPS
|
||||||
msg_warning "[1/6] Récupération de l'empreinte via HTTPS..."
|
msg_warning "[1/7] Récupération de l'empreinte via HTTPS..."
|
||||||
# Cette commande récupère le certificat du serveur et calcule son empreinte SHA256
|
# Cette commande récupère le certificat du serveur et calcule son empreinte SHA256
|
||||||
CA_FINGERPRINT=$(openssl s_client -connect "${CA_IP}:443" </dev/null 2>/dev/null | openssl x509 -fingerprint -sha256 -noout | cut -d'=' -f2 | tr -d ':')
|
ca_fingerprint=$(openssl s_client -connect "${ca_ip}:443" </dev/null 2>/dev/null | openssl x509 -fingerprint -sha256 -noout | cut -d'=' -f2 | tr -d ':')
|
||||||
|
|
||||||
if [ -z "$CA_FINGERPRINT" ]; then
|
if [ -z "$ca_fingerprint" ]; then
|
||||||
msg_error "Erreur : Impossible de contacter le serveur sur le port 443. Vérifie l'IP."
|
msg_error "Erreur : Impossible de contacter le serveur sur le port 443. Vérifie l'IP."
|
||||||
exit 1
|
return 1
|
||||||
fi
|
fi
|
||||||
msg_info "Empreinte détectée : ${GREEN}$CA_FINGERPRINT${NONE}"
|
msg_info "Empreinte détectée : ${GREEN}$ca_fingerprint${NONE}"
|
||||||
|
|
||||||
# 3. Installation de Step CLI (si besoin)
|
# ==================================================================
|
||||||
|
# [2/7] Installation du paquet Step CLI
|
||||||
|
# ==================================================================
|
||||||
|
|
||||||
|
msg_warning "[2/7] Installation du paquet Step CLI..."
|
||||||
|
|
||||||
|
# Installation de Step CLI (si besoin)
|
||||||
if ! command -v step &> /dev/null; then
|
if ! command -v step &> /dev/null; then
|
||||||
msg_warning "[2/6] Installation du paquet Step CLI..."
|
|
||||||
|
if dpkg -i "${WELCOME_SCRIPT_PATH}/doc/${CONFIG_DEB_INSTALL_DEFAULT_CA_STEP}" > /dev/null 2>&1; then
|
||||||
|
msg_success "Installation du paquet ${CONFIG_DEB_INSTALL_DEFAULT_CA_STEP}"
|
||||||
|
else
|
||||||
|
msg_error "Échec de l'installation du paquet ${CONFIG_DEB_INSTALL_DEFAULT_CA_STEP}"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
# On télécharge une version stable spécifique
|
# On télécharge une version stable spécifique
|
||||||
VERSION="0.24.4"
|
#VERSION="0.24.4"
|
||||||
URL="https://github.com/smallstep/cli/releases/download/v${VERSION}/step-cli_${VERSION}_amd64.deb"
|
#URL="https://github.com/smallstep/cli/releases/download/v${VERSION}/step-cli_${VERSION}_amd64.deb"
|
||||||
|
#if wget -q $URL -O /tmp/step.deb; then
|
||||||
wget -q $URL -O /tmp/step.deb
|
# dpkg -i /tmp/step.deb > /dev/null 2>&1
|
||||||
|
# rm /tmp/step.deb
|
||||||
if [ $? -eq 0 ]; then
|
#else
|
||||||
dpkg -i /tmp/step.deb > /dev/null 2>&1
|
# msg_error "Échec du téléchargement du paquet .deb"
|
||||||
rm /tmp/step.deb
|
# return 1
|
||||||
|
#fi
|
||||||
else
|
else
|
||||||
msg_error "Échec du téléchargement du paquet .deb"
|
msg_success "paquet Step CLI déjà installé"
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 4. Configuration et Certificat
|
# ==================================================================
|
||||||
msg_warning "[3/6] Liaison et génération du certificat..."
|
# [3/7] Liaison et génération du certificat
|
||||||
|
# ==================================================================
|
||||||
|
|
||||||
|
# Configuration et Certificat
|
||||||
|
msg_warning "[3/7] Liaison et génération du certificat..."
|
||||||
|
|
||||||
# 1. On force un environnement de travail propre
|
# 1. On force un environnement de travail propre
|
||||||
export STEPPATH="/tmp/step-config"
|
step_path="/tmp/step-config"
|
||||||
rm -rf "$STEPPATH"
|
rm -rf "$step_path"
|
||||||
mkdir -p "$STEPPATH"
|
mkdir -p "$step_path"
|
||||||
|
|
||||||
# 2. Utilisation de la Fingerprint confirmée
|
# 2. Utilisation de la Fingerprint confirmée
|
||||||
CA_FINGERPRINT="4873b9eaeb8a7643475939b4035221bd1bc3acd0db00e94df5a76d771459f439"
|
#ca_fingerprint="4873b9eaeb8a7643475939b4035221bd1bc3acd0db00e94df5a76d771459f439"
|
||||||
|
root_ca_fingerprint=$(ssh "root@${ca_ip}" "step certificate fingerprint /var/lib/step-ca/.step/certs/root_ca.crt")
|
||||||
|
|
||||||
|
if [ -z "$root_ca_fingerprint" ]; then
|
||||||
|
msg_error " Impossible de récupérer le fingerprint."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
# 3. Liaison (Bootstrap)
|
# 3. Liaison (Bootstrap)
|
||||||
step ca bootstrap --ca-url "$CA_URL" --fingerprint "$CA_FINGERPRINT" --force
|
step ca bootstrap --ca-url "$ca_url" --fingerprint "$root_ca_fingerprint" --force
|
||||||
|
|
||||||
# Chemin du certificat racine récupéré
|
# Chemin du certificat racine récupéré
|
||||||
ROOT_CRT="$STEPPATH/certs/root_ca.crt"
|
root_crt="$step_path/certs/root_ca.crt"
|
||||||
|
|
||||||
# 4. Génération du Wildcard
|
# 4. Génération du Wildcard
|
||||||
mkdir -p /etc/ssl/wildcard
|
mkdir -p "${CONFIG_DEB_INSTALL_DEFAULT_CA_INSTALL_PATH}"
|
||||||
BASE_DOMAIN=$(echo "$WILDCARD_DOMAIN" | sed 's/\*\.//')
|
base_domain=$(echo "$wildcard_domain" | sed 's/\*\.//')
|
||||||
|
|
||||||
step ca certificate "$WILDCARD_DOMAIN" /etc/ssl/wildcard/server.crt /etc/ssl/wildcard/server.key \
|
echo "### THIS IS A TEST ###"
|
||||||
--ca-url "$CA_URL" \
|
echo "### THIS IS A TEST ###"
|
||||||
--root "$ROOT_CRT" \
|
echo "### THIS IS A TEST ### $base_domain"
|
||||||
--san "$WILDCARD_DOMAIN" \
|
|
||||||
--san "$BASE_DOMAIN" \
|
base_domain="${wildcard_domain#*.}"
|
||||||
|
|
||||||
|
echo "### THIS IS A TEST ###"
|
||||||
|
echo "### THIS IS A TEST ###"
|
||||||
|
echo "### THIS IS A TEST ### $base_domain"
|
||||||
|
|
||||||
|
|
||||||
|
step ca certificate "$wildcard_domain" \
|
||||||
|
"${CONFIG_DEB_INSTALL_DEFAULT_CA_INSTALL_PATH}/server.crt" \
|
||||||
|
"${CONFIG_DEB_INSTALL_DEFAULT_CA_INSTALL_PATH}/server.key" \
|
||||||
|
--ca-url "$ca_url" \
|
||||||
|
--root "$root_crt" \
|
||||||
|
--san "$wildcard_domain" \
|
||||||
|
--san "$base_domain" \
|
||||||
--not-after=8760h \
|
--not-after=8760h \
|
||||||
--force
|
--force
|
||||||
|
|
||||||
msg_success "Certificat généré avec succès dans /etc/ssl/wildcard/"
|
msg_success "Certificat généré avec succès dans ${CONFIG_DEB_INSTALL_DEFAULT_CA_INSTALL_PATH}/"
|
||||||
|
|
||||||
msg_warning "[4/6] Installation automatique du Root CA..."
|
# ==================================================================
|
||||||
|
# [4/7] Installation automatique du Root CA
|
||||||
|
# ==================================================================
|
||||||
|
|
||||||
|
msg_warning "[4/7] Installation automatique du Root CA..."
|
||||||
|
|
||||||
# 1. Définition des chemins
|
# 1. Définition des chemins
|
||||||
# On s'assure de retrouver le fichier même si la variable a sauté
|
# On s'assure de retrouver le fichier même si la variable a sauté
|
||||||
local TEMP_ROOT="/tmp/step-config/certs/root_ca.crt"
|
temp_root="/tmp/step-config/certs/root_ca.crt"
|
||||||
local SYSTEM_TARGET="/usr/local/share/ca-certificates/step-ca-frogg.crt"
|
system_target="/usr/local/share/ca-certificates/step-ca-frogg.crt"
|
||||||
|
inter_target="/usr/local/share/ca-certificates/step-ca-intermediate-frogg.crt"
|
||||||
|
|
||||||
if [ -f "$TEMP_ROOT" ]; then
|
### --- SECTION INTERMEDIATE --- ###
|
||||||
|
|
||||||
|
# Chemins pour l'intermédiaire
|
||||||
|
server_crt="${CONFIG_DEB_INSTALL_DEFAULT_CA_INSTALL_PATH}/server.crt" # Ton cert généré par step
|
||||||
|
|
||||||
|
if [ -f "$server_crt" ]; then
|
||||||
|
# On extrait le DEUXIÈME certificat du fichier (l'intermédiaire)
|
||||||
|
# On utilise awk pour isoler le second bloc -----BEGIN...END-----
|
||||||
|
awk 'split($0,a,"-----END CERTIFICATE-----"){print a[1] "-----END CERTIFICATE-----"}' "$server_crt" | tail -n +2 | awk '/-----BEGIN CERTIFICATE-----/,/-----END CERTIFICATE-----/' > "$inter_target"
|
||||||
|
|
||||||
|
if [ -s "$inter_target" ]; then
|
||||||
|
msg_success "Certificat intermédiaire extrait avec succès."
|
||||||
|
else
|
||||||
|
# Si awk échoue ou que le fichier est simple, on peut tenter un téléchargement direct
|
||||||
|
msg_warn "Extraction échouée, tentative de récupération via step..."
|
||||||
|
step ca root "$inter_target" --ca-url "$ca_url" --fingerprint "$ca_fingerprint" --force > /dev/null 2>&1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
msg_warn "server.crt introuvable, impossible d'extraire l'intermédiaire pour le moment."
|
||||||
|
fi
|
||||||
|
|
||||||
|
### --- FIN SECTION INTERMEDIATE --- ###
|
||||||
|
|
||||||
|
if [ -f "$temp_root" ]; then
|
||||||
# 2. On nettoie le certificat (format PEM pur) pour éviter l'erreur 'rehash'
|
# 2. On nettoie le certificat (format PEM pur) pour éviter l'erreur 'rehash'
|
||||||
# Cela extrait uniquement le certificat et ignore le texte inutile
|
# Cela extrait uniquement le certificat et ignore le texte inutile
|
||||||
openssl x509 -in "$TEMP_ROOT" -out "$SYSTEM_TARGET"
|
openssl x509 -in "$temp_root" -out "$system_target"
|
||||||
|
|
||||||
# 3. Mise à jour du magasin (sans --fresh pour éviter les warnings inutiles)
|
# 3. Mise à jour du magasin (sans --fresh pour éviter les warnings inutiles)
|
||||||
update-ca-certificates > /dev/null 2>&1
|
if update-ca-certificates > /dev/null 2>&1; then
|
||||||
|
|
||||||
# 4. Vérification réelle
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
msg_success "Le système fait maintenant confiance au Root CA Frogg."
|
msg_success "Le système fait maintenant confiance au Root CA Frogg."
|
||||||
else
|
else
|
||||||
msg_error "Échec lors de la mise à jour des certificats système."
|
msg_error "Échec lors de la mise à jour des certificats système."
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
msg_error "Source introuvable dans $TEMP_ROOT. Vérifie que l'étape 3 a réussi."
|
msg_error "Source introuvable dans $temp_root. Vérifie que l'étape 3 a réussi."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# ---(Cron & Nettoyage final) ---
|
# ---(Cron & Nettoyage final) ---
|
||||||
|
|
@ -672,18 +738,18 @@ do_deb_sys_cert_install(){
|
||||||
rm -rf "/tmp/step-config"
|
rm -rf "/tmp/step-config"
|
||||||
|
|
||||||
# ==================================================================
|
# ==================================================================
|
||||||
# [5/6] ATTRIBUTION DES DROITS
|
# [5/7] ATTRIBUTION DES DROITS
|
||||||
# ==================================================================
|
# ==================================================================
|
||||||
msg_warning "[5/6] Finalisation des droits et redémarrage des services..."
|
msg_warning "[5/7] Finalisation des droits et redémarrage des services..."
|
||||||
|
|
||||||
# Fichiers de certificats
|
# Fichiers de certificats
|
||||||
local cert_dir="/etc/ssl/wildcard"
|
cert_dir="${CONFIG_DEB_INSTALL_DEFAULT_CA_INSTALL_PATH}"
|
||||||
local cert_crt="${cert_dir}/server.crt"
|
cert_crt="${cert_dir}/server.crt"
|
||||||
local cert_key="${cert_dir}/server.key"
|
cert_key="${cert_dir}/server.key"
|
||||||
local cert_pfx="${cert_dir}/server.pfx"
|
cert_pfx="${cert_dir}/server.pfx"
|
||||||
|
|
||||||
# Groupe utilisé pour l'accès aux certificats
|
# Groupe utilisé pour l'accès aux certificats
|
||||||
local cert_group="ssl-cert"
|
cert_group="ssl-cert"
|
||||||
|
|
||||||
# Création du groupe si nécessaire
|
# Création du groupe si nécessaire
|
||||||
groupadd -f "$cert_group"
|
groupadd -f "$cert_group"
|
||||||
|
|
@ -697,10 +763,13 @@ do_deb_sys_cert_install(){
|
||||||
chmod 640 "$cert_key" "$cert_pfx" 2>/dev/null
|
chmod 640 "$cert_key" "$cert_pfx" 2>/dev/null
|
||||||
chmod 644 "$cert_crt" 2>/dev/null
|
chmod 644 "$cert_crt" 2>/dev/null
|
||||||
|
|
||||||
# Parcours des services configurés
|
# Groupe utilisé pour l'accès aux certificats
|
||||||
|
cert_group="ssl-cert"
|
||||||
|
|
||||||
|
# Parcours des services configurés pour ajouter l utilisateur au groupe ssl
|
||||||
for svc in $CONFIG_DEB_INSTALL_DEFAULT_CA_SERVICES; do
|
for svc in $CONFIG_DEB_INSTALL_DEFAULT_CA_SERVICES; do
|
||||||
|
|
||||||
local load_state unit svc_user
|
load_state unit svc_user
|
||||||
|
|
||||||
unit="${svc%.service}.service"
|
unit="${svc%.service}.service"
|
||||||
|
|
||||||
|
|
@ -747,30 +816,14 @@ do_deb_sys_cert_install(){
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
# ==================================================================
|
# ==================================================================
|
||||||
# [6/6] PLANIFICATION & GÉNÉRATION PFX
|
# [6/7] GÉNÉRATION PFX
|
||||||
# ==================================================================
|
# ==================================================================
|
||||||
msg_warning "[6/6] Activation du renouvellement automatique..."
|
msg_warning "[6/7] Génération du .pfx..."
|
||||||
|
|
||||||
# Détection du groupe actuel du dossier (normalement ssl-cert)
|
# Détection du groupe actuel du dossier (normalement ssl-cert)
|
||||||
local current_group
|
|
||||||
current_group="$(stat -c '%G' "$cert_dir")"
|
current_group="$(stat -c '%G' "$cert_dir")"
|
||||||
|
|
||||||
# Binaire step
|
|
||||||
local step_bin
|
|
||||||
step_bin="$(command -v step)"
|
|
||||||
if [[ -z "$step_bin" ]]; then
|
|
||||||
msg_error "Le binaire 'step' est introuvable."
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# ------------------------------------------------------------------
|
|
||||||
# Commande de renouvellement
|
|
||||||
# ------------------------------------------------------------------
|
|
||||||
local renew_cmd
|
|
||||||
renew_cmd="$step_bin certificate renew \"$cert_crt\" \"$cert_key\" --force"
|
|
||||||
|
|
||||||
# ------------------------------------------------------------------
|
# ------------------------------------------------------------------
|
||||||
# Commande de génération du PFX
|
# Commande de génération du PFX
|
||||||
# IMPORTANT:
|
# IMPORTANT:
|
||||||
|
|
@ -778,24 +831,13 @@ do_deb_sys_cert_install(){
|
||||||
# - -passout pass: pour mot de passe vide
|
# - -passout pass: pour mot de passe vide
|
||||||
# - exporte la chaîne complète via -certfile si fullchain.crt existe
|
# - exporte la chaîne complète via -certfile si fullchain.crt existe
|
||||||
# ------------------------------------------------------------------
|
# ------------------------------------------------------------------
|
||||||
local pfx_input="$cert_crt"
|
pfx_input="$cert_crt"
|
||||||
local cert_fullchain="${cert_dir}/fullchain.crt"
|
cert_fullchain="${cert_dir}/fullchain.crt"
|
||||||
|
|
||||||
if [[ -f "$cert_fullchain" ]]; then
|
if [[ -f "$cert_fullchain" ]]; then
|
||||||
pfx_input="$cert_fullchain"
|
pfx_input="$cert_fullchain"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local pfx_cmd
|
|
||||||
# pfx_cmd="openssl pkcs12 -export \
|
|
||||||
# -out \"$cert_pfx\" \
|
|
||||||
# -inkey \"$cert_key\" \
|
|
||||||
# -in \"$pfx_input\" \
|
|
||||||
# -certfile \"$pfx_input\" \
|
|
||||||
# -passout pass: \
|
|
||||||
# -legacy \
|
|
||||||
# && chown root:\"$current_group\" \"$cert_pfx\" \
|
|
||||||
# && chmod 640 \"$cert_pfx\""
|
|
||||||
|
|
||||||
pfx_cmd="openssl pkcs12 -export \
|
pfx_cmd="openssl pkcs12 -export \
|
||||||
-out \"$cert_pfx\" \
|
-out \"$cert_pfx\" \
|
||||||
-inkey \"$cert_key\" \
|
-inkey \"$cert_key\" \
|
||||||
|
|
@ -805,15 +847,40 @@ do_deb_sys_cert_install(){
|
||||||
&& chown root:\"$current_group\" \"$cert_pfx\" \
|
&& chown root:\"$current_group\" \"$cert_pfx\" \
|
||||||
&& chmod 640 \"$cert_pfx\""
|
&& chmod 640 \"$cert_pfx\""
|
||||||
|
|
||||||
|
if eval "$pfx_cmd"; then
|
||||||
|
|
||||||
|
# chown root:"$current_group" "$cert_key" "$cert_crt"
|
||||||
|
# chmod 640 "$cert_key"
|
||||||
|
# chmod 644 "$cert_crt"
|
||||||
|
msg_success "Fichier PFX généré avec succès."
|
||||||
|
else
|
||||||
|
msg_error "Échec de la génération du fichier PFX."
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ==================================================================
|
||||||
|
# [7/7] PLANIFICATION
|
||||||
|
# ==================================================================
|
||||||
|
msg_warning "[7/7] Activation du renouvellement automatique..."
|
||||||
|
|
||||||
|
step_bin="$(command -v step)"
|
||||||
|
if [[ -z "$step_bin" ]]; then
|
||||||
|
msg_error "Le binaire 'step' est introuvable."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------
|
||||||
|
# Commande de renouvellement
|
||||||
|
# ------------------------------------------------------------------
|
||||||
|
|
||||||
|
renew_cmd="$step_bin certificate renew \"$cert_crt\" \"$cert_key\" --force"
|
||||||
|
|
||||||
# ------------------------------------------------------------------
|
# ------------------------------------------------------------------
|
||||||
# Construction de la liste des services à redémarrer
|
# Construction de la liste des services à redémarrer
|
||||||
# ------------------------------------------------------------------
|
# ------------------------------------------------------------------
|
||||||
local restart_cmd=""
|
|
||||||
if [[ ${#active_services[@]} -gt 0 ]]; then
|
if [[ ${#active_services[@]} -gt 0 ]]; then
|
||||||
restart_cmd="systemctl restart"
|
restart_cmd="systemctl restart"
|
||||||
local unit
|
|
||||||
for unit in "${active_services[@]}"; do
|
for unit in "${active_services[@]}"; do
|
||||||
restart_cmd+=" \"$unit\""
|
restart_cmd+=" \"$unit\""
|
||||||
done
|
done
|
||||||
|
|
@ -822,7 +889,7 @@ do_deb_sys_cert_install(){
|
||||||
# ------------------------------------------------------------------
|
# ------------------------------------------------------------------
|
||||||
# Commande complète du cron
|
# Commande complète du cron
|
||||||
# ------------------------------------------------------------------
|
# ------------------------------------------------------------------
|
||||||
local full_command
|
|
||||||
full_command="$renew_cmd >> /var/log/cert-renew.log 2>&1 \
|
full_command="$renew_cmd >> /var/log/cert-renew.log 2>&1 \
|
||||||
&& $pfx_cmd \
|
&& $pfx_cmd \
|
||||||
&& chown root:\"$current_group\" \"$cert_key\" \"$cert_crt\" \
|
&& chown root:\"$current_group\" \"$cert_key\" \"$cert_crt\" \
|
||||||
|
|
@ -831,6 +898,7 @@ do_deb_sys_cert_install(){
|
||||||
|
|
||||||
if [[ -n "$restart_cmd" ]]; then
|
if [[ -n "$restart_cmd" ]]; then
|
||||||
full_command+=" && $restart_cmd"
|
full_command+=" && $restart_cmd"
|
||||||
|
msg_success "Creation de la commande Cron."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# ------------------------------------------------------------------
|
# ------------------------------------------------------------------
|
||||||
|
|
@ -842,14 +910,14 @@ do_deb_sys_cert_install(){
|
||||||
# ------------------------------------------------------------------
|
# ------------------------------------------------------------------
|
||||||
# Exécution immédiate de la génération du PFX
|
# Exécution immédiate de la génération du PFX
|
||||||
# ------------------------------------------------------------------
|
# ------------------------------------------------------------------
|
||||||
if eval "$pfx_cmd"; then
|
#if eval "$pfx_cmd"; then
|
||||||
chown root:"$current_group" "$cert_key" "$cert_crt"
|
# chown root:"$current_group" "$cert_key" "$cert_crt"
|
||||||
chmod 640 "$cert_key"
|
# chmod 640 "$cert_key"
|
||||||
chmod 644 "$cert_crt"
|
# chmod 644 "$cert_crt"
|
||||||
msg_success "Fichier PFX généré avec succès."
|
# msg_success "Fichier PFX généré avec succès."
|
||||||
else
|
#else
|
||||||
msg_error "Échec de la génération du fichier PFX."
|
# msg_error "Échec de la génération du fichier PFX."
|
||||||
fi
|
#fi
|
||||||
|
|
||||||
# ------------------------------------------------------------------
|
# ------------------------------------------------------------------
|
||||||
# Redémarrage final (sécurité)
|
# Redémarrage final (sécurité)
|
||||||
|
|
@ -862,12 +930,12 @@ do_deb_sys_cert_install(){
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
msg_success "Infrastructure PKI prête. Groupe : $CURRENT_GROUP"
|
msg_success "Infrastructure PKI prête. Groupe : $current_group"
|
||||||
|
|
||||||
msg_success " "
|
msg_success " "
|
||||||
msg_success " ################################"
|
msg_success " ################################"
|
||||||
msg_success " # Tout est prêt et configuré ! # "
|
msg_success " # Tout est prêt et configuré ! # "
|
||||||
msg_success " ###########(/etc/ssl/wildcard/)#"
|
msg_success " ###########(${CONFIG_DEB_INSTALL_DEFAULT_CA_INSTALL_PATH}/)#"
|
||||||
msg_success " "
|
msg_success " "
|
||||||
|
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue