#!/bin/bash # certbot-deploy-mosquitto.sh — copie le certificat Let's Encrypt vers un # emplacement lisible par l'utilisateur système 'mosquitto' (non-root), et # redémarre mosquitto pour qu'il recharge le nouveau certificat. # # /etc/letsencrypt est verrouillé root-only par certbot (le dossier lui-même, # pas seulement privkey.pem) : mosquitto ne peut donc jamais lire les # fichiers directement à leur emplacement d'origine, quels que soient leurs # propres droits. D'où cette copie découplée, dans un répertoire que install.sh # rend group-lisible pour 'mosquitto'. # # Installé par install.sh (install-master) comme deploy-hook certbot : # /etc/letsencrypt/renewal-hooks/deploy/ — s'exécute automatiquement à # chaque renouvellement. Peut aussi être lancé à la main. set -euo pipefail DOMAIN="__MQTT_MASTER_DOMAIN__" SRC="/etc/letsencrypt/live/$DOMAIN" DEST="/etc/mosquitto/master-tls" install -d -o root -g mosquitto -m 750 "$DEST" cp "$SRC/fullchain.pem" "$DEST/fullchain.pem" cp "$SRC/privkey.pem" "$DEST/privkey.pem" chown root:mosquitto "$DEST/fullchain.pem" "$DEST/privkey.pem" chmod 640 "$DEST/fullchain.pem" "$DEST/privkey.pem" systemctl restart mosquitto.service