
OwnTracks is een gratis open-source applicatie voor iOS en Android waarmee je je locatie via MQTT naar je home automation systeem kunt sturen. Locatiedata moet natuurlijk veilig verstuurd worden. In dit artikel staat hoe je OwnTracks met TLS en Mosquitto MQTT configureert.
Belangrijk: het volgende OwnTracks-script draait op een publieke server waar Mosquitto al geinstalleerd is.
$ cd /etc/mosquitto/certs
$ wget https://github.com/owntracks/tools/blob/master/TLS/generate-CA.sh
$ chmod +x generate-CA.sh
Maak de geldigheid van certificaten langer op Android, bijvoorbeeld tot 2032. Op iOS kan dit niet en is de limiet 825 dagen. Wijzig:
server_days=825
naar:
server_days=$days
Maak de server key set:
$ ./generate-CA.sh <volledige domeinnaam>
# voorbeeld
$ ./generate-CA.sh vps.example.com
Maak daarna de client key set. Vervang arjan door je eigen naam:
$ ./generate-CA.sh client arjan
Voeg de key files toe aan de Mosquitto-configuratie:
$ vi /etc/mosquitto/conf.d/default.conf
listener 12383
cafile /etc/mosquitto/certs/ca.crt
keyfile /etc/mosquitto/certs/vps.example.com.key
certfile /etc/mosquitto/certs/vps.example.com.crt
connection brug
address 192.168.5.248:1883
topic mobiel/# both
topic owntracks/# both
Test de Mosquitto server:
$ systemctl stop mosquitto.service
$ tail -f /var/log/mosquitto/mosquitto.log &
$ /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
Kopieer de client keys en ca.crt naar je desktop of laptop. De remote domainnaam moet hetzelfde zijn als bij het servercertificaat:
$ mosquitto_sub -d -h vps.example.com -p 12383 -t owntracks/# --cafile ca.crt --cert arjan.crt --key arjan.key
Documentatie: https://owntracks.org/booklet/features/tlscert/#pkcs12
Maak een PKCS#12-bestand om naar je telefoon te sturen:
$ openssl pkcs12 -export -in arjan.crt -inkey arjan.key -name "Arjan's key" -out arjan.p12
Kopieer ca.crt en arjan.p12 naar de telefoon, bijvoorbeeld via e-mail. Sla ze op in een nieuwe map OwnTracks.
In OwnTracks:
ca.crtarjan.p12Controleer daarna in Status of de verbinding succesvol is.
Voor iOS staan de stappen in de OwnTracks documentatie: iOS OwnTracks