# Broker Mosquitto master (Phase 3) — écoute 8883, TLS obligatoire. # Cohabite avec le listener local (mosquitto-local.conf) dans le même # processus mosquitto : per_listener_settings s'applique par listener, pas # de conflit entre les deux fichiers de conf.d. # # Deux chaînes de confiance distinctes : # - certfile/keyfile : certificat Let's Encrypt du domaine __MQTT_MASTER_DOMAIN__ # (identité TLS présentée par le serveur) — copié par # certbot-deploy-mosquitto.sh vers /etc/mosquitto/master-tls/, jamais lu # directement dans /etc/letsencrypt/ (verrouillé root-only par certbot, # illisible pour l'utilisateur système 'mosquitto') # - cafile : CA privée dédiée (scripts/master-ca-init.sh), qui NE SERT QU'À # vérifier les certificats clients des noeuds (mTLS) — Let's Encrypt ne # signe pas de certificats clients. # # Déployé par install.sh (install-master) vers /etc/mosquitto/conf.d/mosquitto-master.conf listener 8883 protocol mqtt cafile /etc/mosquitto/master-ca/ca.crt certfile /etc/mosquitto/master-tls/fullchain.pem keyfile /etc/mosquitto/master-tls/privkey.pem tls_version tlsv1.2 # mTLS : le certificat client est obligatoire, et son CN devient l'identité # MQTT du noeud (exploité par master-acl.conf pour restreindre chaque noeud # à ses propres topics). require_certificate true use_identity_as_username true allow_anonymous false acl_file /etc/mosquitto/master-acl.conf