Comment configurez-vous courtier mosquitto crypté comme une page Web qui a https?
Je suis en train de configurer un mosquitto courtier qui est crypté à l'aide de ssl/tls. Je ne veux pas générer des certificats client. Je veux juste une connexion cryptée.
La page de manuel décrit les paramètres qui sont disponibles, et non pas ceux qui sont nécessaires et comment ils sont utilisés.
Les paramètres qui sont nécessaires et comment les définir?
- Je utiliser mosquitto 1.3.5
source d'informationauteur Gussoh
Vous devez vous connecter pour publier un commentaire.
Il y a un petit guide ici, mais il ne parle pas beaucoup: http://mosquitto.org/man/mosquitto-tls-7.html
Vous devez définir ces:
certfile
keyfile
cafile
Ils peuvent être générés à l'aide des commandes dans le lien ci-dessus. Mais le plus facile est d'utiliser ce script: https://github.com/owntracks/tools/blob/master/TLS/generate-CA.sh
Après l'exécution du script et de la modification de la config, il pourrait ressembler à quelque chose comme ceci:
Si mosquitto dit
Unable to load server key file
cela signifie que l'utilisateur qui exécute mosquitto n'a pas l'autorisation de lire le fichier. Même si vous commencez en tant que root le courtier pourrait commencer comme un autre utilisateur, mosquitto par exemple. Pour résoudre ce faire, par exemple,chown mosquitto:root keyfile
Pour se connecter au courtier, le client aura besoin de l'autorité de certification.crt-fichier. Si vous ne fournissez pas ce que le courtier va dire quelque chose comme:
À la disposition de l'mosquitto_sub commande que vous utilisez
--cafile pathToCaCrt
. L'autorité de certification.le crt peut être distribué avec les clients et il fera en sorte que le serveur auquel il est connecté est en fait le serveur correct.La
--insecure
drapeau de mosquitto_sub ne pas faire que le client accepte tous les certificats (comme avec wget ou similaire), il permet tout simplement que le certificat ne pas avoir l'hôte de connexion à en nom commun. Ainsi, vous devez vous assurer que votre certificat a votre courtier d'hôte en tant que nom commun.Pour sécuriser les WebSocket accès de Mosquitto, par exemple à l'aide d'un Let's Encrypt certificat, votre fichier de configuration pourrait ressembler à ceci:
Assurez-vous que les fichiers sont lisibles par Mosquitto (Debian en particulier s'exécute Mosquitto en vertu de la
mosquitto
de l'utilisateur, qui est privilégié). Vous avez besoin Mosquitto 1.4 pour soutenir les WebSockets.Pour se connecter à ce WebSocket à l'aide de l'Ops JavaScript client:
Notez que cela n'implique pas de contrôle d'accès, de sorte que votre MQTT courtier sera accessible au public. Vous pouvez ajouter de l'autorisation, trop.