Es gibt einen kleinen Führer hier, aber es sagt nicht viel: http://mosquitto.org/man/mosquitto-tls-7.html
Sie müssen diese setzen: certfile keyfile CaFile
Sie kann mit den Befehlen im obigen Link generiert werden. Aber einfacher ist dieses Skript zu verwenden: https://github.com/owntracks/tools/blob/master/TLS/generate-CA.sh
Nachdem das Skript ausgeführt wird und die Änderung der Konfigurations es in etwa so aussehen könnte:
listener 8883
cafile /etc/mosquitto/certs/ca.crt
certfile /etc/mosquitto/certs/hostname.localdomain.crt
keyfile /etc/mosquitto/certs/hostname.localdomain.key
Wenn mosquitto Unable to load server key file
sagt, bedeutet es, dass der Benutzer die mosquitto läuft nicht Habe die Erlaubnis, die Datei zu lesen. Selbst wenn Sie es als root starten, startet der Broker möglicherweise als ein anderer Benutzer, zum Beispiel mosquitto. Um dies zu lösen, z.B. chown mosquitto:root keyfile
Zur Verbindung mit dem Broker benötigt der Client die ca.crt-Datei. Wenn Sie dies nicht liefern kann der Broker etwas sagen wie:
OpenSSL Error: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number
es dem mosquitto_sub Befehl liefern Sie --cafile pathToCaCrt
verwenden. Der ca.crt kann mit den Clients verteilt werden und stellt sicher, dass der Server, mit dem er verbunden ist, der richtige Server ist. Das Flag von mosquitto_sub lässt den Client nicht alle Zertifikate akzeptieren (wie mit wget oder ähnlichem), es erlaubt nur, dass das Zertifikat nicht den Host hat, mit dem Sie sich im allgemeinen Namen verbinden. Sie sollten also sicherstellen, dass Ihr Broker den Broker-Host als allgemeinen Namen hat.
eine handliche Anleitung hier, die Sie ändern können; http://jpmens.net/2013/09/01/installing-mosquitto-on-a-raspberry-pi/ –