26 lines
1.3 KiB
Text
26 lines
1.3 KiB
Text
|
|
#!/bin/sh
|
||
|
|
# Géré par Set-OPS (rôle serveur_postgresql). Ne pas éditer à la main.
|
||
|
|
# Synchronise le certificat step_ca (déposé par client_pki, root:root) vers un
|
||
|
|
# emplacement lisible par postgres, puis recharge. PostgreSQL lit en tant que
|
||
|
|
# 'postgres' et REFUSE une clé accessible au groupe/monde → owner postgres, 0600.
|
||
|
|
# Idempotent ; appelé au déploiement ET au renouvellement (unité .path).
|
||
|
|
set -eu
|
||
|
|
|
||
|
|
SRC_CERT="{{ serveur_postgresql_tls_source_cert }}"
|
||
|
|
SRC_KEY="{{ serveur_postgresql_tls_source_cle }}"
|
||
|
|
SRC_CA="{{ serveur_postgresql_tls_source_ca }}"
|
||
|
|
DST="{{ serveur_postgresql_tls_dir }}"
|
||
|
|
|
||
|
|
[ -f "$SRC_CERT" ] && [ -f "$SRC_KEY" ] || exit 0
|
||
|
|
|
||
|
|
install -o postgres -g postgres -m 0644 "$SRC_CERT" "$DST/server.crt"
|
||
|
|
install -o postgres -g postgres -m 0600 "$SRC_KEY" "$DST/server.key"
|
||
|
|
[ -f "$SRC_CA" ] && install -o postgres -g postgres -m 0644 "$SRC_CA" "$DST/root.crt"
|
||
|
|
|
||
|
|
# Reload (SIGHUP) : PostgreSQL recharge ses fichiers TLS sans coupure.
|
||
|
|
# ATTENTION : 'postgresql' est un wrapper Debian (reload = no-op) ; il faut recharger
|
||
|
|
# la ou les INSTANCES de cluster (postgresql@NN-main), sinon le nouveau cert n'est pas pris.
|
||
|
|
for u in $(systemctl list-units --plain --no-legend 'postgresql@*' 2>/dev/null | awk '{print $1}'); do
|
||
|
|
systemctl reload "$u" 2>/dev/null || true
|
||
|
|
done
|