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

  1. mkdir ~/docker-mosquitto
  2. nano ~/docker-mosquitto/mosquitto.conf
  3. mkdir ~/docker-mosquitto/data ~/docker-mosquitto/log
  4. 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