Jest mały przewodnik, ale to nie mówi wiele: http://mosquitto.org/man/mosquitto-tls-7.html
trzeba je ustalić: plik_CA keyfile cafile
one można wygenerować za pomocą poleceń w powyższym linku. Ale łatwiej jest korzystać z tego skryptu: https://github.com/owntracks/tools/blob/master/TLS/generate-CA.sh
Po uruchomieniu skryptu i zmieniając config może to wyglądać tak:
listener 8883
cafile /etc/mosquitto/certs/ca.crt
certfile /etc/mosquitto/certs/hostname.localdomain.crt
keyfile /etc/mosquitto/certs/hostname.localdomain.key
Jeśli mosquitto mówi Unable to load server key file
oznacza to, że użytkownik, który pracuje mosquitto nie mieć pozwolenie na odczytanie pliku. Nawet jeśli uruchomisz go jako root, broker może zacząć jako inny użytkownik, np. Mosquitto. Aby rozwiązać ten problem, wykonaj np. chown mosquitto:root keyfile
Aby połączyć się z brokerem, klient będzie potrzebował pliku ca.crt. Jeśli nie dostarczy to broker powie coś w stylu:
OpenSSL Error: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number
Aby dostarczyć go do komendy mosquitto_sub użyć --cafile pathToCaCrt
. Pakiet ca.crt może być dystrybuowany z klientami i upewni się, że serwer, do którego jest podłączony, jest właściwie prawidłowym serwerem.
Flaga mosquitto_sub nie powoduje, że klient akceptuje wszystkie certyfikaty (jak w przypadku wget lub podobnego), to po prostu pozwala, aby certyfikat nie miał hosta, z którym łączysz się pod wspólną nazwą. Powinieneś więc upewnić się, że twój certyfikat jest nazwą hosta twojego brokera.
Poręczny przewodnik, który można modyfikować; http://jpmens.net/2013/09/01/installing-mosquitto-on-a-raspberry-pi/ –