- Ajout des droits pfx

This commit is contained in:
Frogg 2026-05-09 21:40:17 +02:00
parent c60154fc93
commit e4e13ec17f
1 changed files with 38 additions and 41 deletions

View File

@ -650,56 +650,54 @@ do_deb_sys_cert_install(){
# 1. On s'assure que le groupe technique existe
groupadd -f ssl-cert
# Boucle sur la liste des services
for SVC in $CONFIG_DEB_INSTALL_DEFAULT_CA_SERVICES; do
# Boucle sur la liste des services
for SVC in $CONFIG_DEB_INSTALL_DEFAULT_CA_SERVICES; do
# Normalise le nom du service :
# - si "nginx" -> "nginx.service"
# - si "nginx.service" -> "nginx.service"
UNIT="${SVC%.service}.service"
# Normalisation du nom
UNIT="${SVC%.service}.service"
# Vérifie que l'unité existe réellement
# systemctl status retourne 4 si l'unité n'existe pas
if ! systemctl status "$UNIT" >/dev/null 2>&1; then
continue
fi
# Vérification réelle de l'existence du service
LOAD_STATE=$(systemctl show "$UNIT" --property=LoadState --value 2>/dev/null)
# Vérifie que le service est actif
if ! systemctl is-active --quiet "$UNIT"; then
continue
fi
if [ "$LOAD_STATE" != "loaded" ]; then
# Service inexistant, on passe au suivant
continue
fi
# Récupération d'un PID du service
PID=$(pgrep -f "${SVC%.service}" | head -n1)
[ -z "$PID" ] && continue
# Vérifie que le service est actif
if ! systemctl is-active --quiet "$UNIT"; then
continue
fi
# Récupération de l'utilisateur du processus
SVC_USER=$(ps -o user= -p "$PID" | tr -d ' ')
[ -z "$SVC_USER" ] && continue
# Recherche d'un PID
PID=$(pgrep -f "${SVC%.service}" | head -n1)
[ -z "$PID" ] && continue
# On ignore les services tournant en root
if [ "$SVC_USER" = "root" ]; then
continue
fi
# Utilisateur du processus
SVC_USER=$(ps -o user= -p "$PID" | tr -d ' ')
[ -z "$SVC_USER" ] && continue
msg_info "🔧 Configuration de $UNIT (Utilisateur : $SVC_USER)"
# Ignore root
[ "$SVC_USER" = "root" ] && continue
# Ajout au groupe ssl-cert
usermod -aG ssl-cert "$SVC_USER"
msg_info "🔧 Configuration de $UNIT (Utilisateur : $SVC_USER)"
# Application des droits sur les certificats
chown root:ssl-cert /etc/ssl/wildcard/server.key /etc/ssl/wildcard/server.pfx
chmod 640 /etc/ssl/wildcard/server.key /etc/ssl/wildcard/server.pfx
chmod 644 /etc/ssl/wildcard/server.crt
# Ajout au groupe ssl-cert
usermod -aG ssl-cert "$SVC_USER"
# Redémarrage du service
if systemctl restart "$UNIT"; then
msg_success "Service $UNIT redémarré avec succès."
else
msg_error "Impossible de redémarrer $UNIT."
fi
# Permissions certificats
chown root:ssl-cert /etc/ssl/wildcard/server.key /etc/ssl/wildcard/server.pfx
chmod 640 /etc/ssl/wildcard/server.key /etc/ssl/wildcard/server.pfx
chmod 644 /etc/ssl/wildcard/server.crt
done
# Redémarrage
if systemctl restart "$UNIT"; then
msg_success "Service $UNIT redémarré avec succès."
else
msg_error "Impossible de redémarrer $UNIT."
fi
done
# ==================================================================
# [6/6] PLANIFICATION & GÉNÉRATION PFX
@ -714,8 +712,7 @@ done
local CURRENT_GROUP=$(stat -c '%G' /etc/ssl/wildcard/)
# La commande de génération PFX qui préserve les droits
local PFX_CMD="openssl pkcs12 -export -out $CERT_PFX -inkey $CERT_KEY -in $CERT_CRT -passout pass: && chown root:$CURRENT_GROUP $CERT_PFX && chmod 640 $CERT_PFX"
local PFX_CMD="openssl pkcs12 -export -out $CERT_PFX -inkey $CERT_KEY -in $CERT_CRT -passout pass: -legacy && chown root:$CURRENT_GROUP $CERT_PFX && chmod 640 $CERT_PFX"
local STEP_BIN=$(which step)
local RENEW_CMD="$STEP_BIN certificate renew $CERT_CRT $CERT_KEY --force"