#!/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