====== MQTT Server für owntracks ====== * Owntracks ist eine Android/iOS App, die Standortdaten speichern/publizieren kann * Unter anderem an einen MQTT-Server * Andere Dienste können den Standort dann auswerten, z.B. Home Assistant ===== Installation ===== * Standortdienste sind schützenswerte Dienste, also sollte ein sicherer Betrieb sichergestellt werden * daher TLS inkl. TLS-Client-Zertifikate * Betrieb im Docker container ==== Eigene CA ==== * ~/docker-mosquitto/easy-rsa/easyrsa3 * Anpassungen in der vars * CA hält 100 Jahre, Zert hält 10 Jahre, Keysize 4096 - ./easyrsa init-pki - ./easyrsa build-ca - ./easyrsa build-server-full brot-mqtt nopass - ./easyrsa build-client-full brot-owntracks - passwort ist bei owntracks pflicht - cp pki/issued/brot-mqtt.crt pki/private/brot-mqtt.key pki/ca.crt ~/docker-mosquitto/ - openssl pkcs12 -export -in pki/issued/brot-owntracks.crt -inkey pki/private/brot-owntracks.key -name "brot owntracks TLS Client Cert" -out brot-owntracks.p12 ==== mosquitto MQTT brocker im Docker-Container ==== - mkdir ~/docker-mosquitto - nano ~/docker-mosquitto/mosquitto.conf - mkdir ~/docker-mosquitto/data ~/docker-mosquitto/log - docker run -d -p 53883:8883 -name brot-mqtt -v /home/brot/docker-mosquitto/mosquitto.conf:/mosquitto/config/mosquitto.conf -v /home/brot/docker-mosquitto/data/:/mosquitto/data/ -v /home/brot/docker-mosquitto/log/:/mosquitto/log/ -v /home/brot/docker-mosquitto/ca.crt:/mosquitto/ca.crt -v /home/brot/docker-mosquitto/brot-mqtt.crt:/mosquitto/brot-mqtt.crt -v /home/brot/docker-mosquitto/brot-mqtt.key:/mosquitto/brot-mqtt.key eclipse-mosquitto listener 8883 cafile /mosquitto/ca.crt certfile /mosquitto/brot-mqtt.crt keyfile /mosquitto/brot-mqtt.key require_certificate true use_identity_as_username true persistence true persistence_location /mosquitto/data/ log_dest file /mosquitto/log/mosquitto.log