Homematic xml api zugriff schützen

Benut­zer der XML API auf der Homea­tic Zen­tra­le (CCU) hat­ten ziem­lich sicher bereits die sel­be Idee wie ich:  Unter­wegs kom­for­ta­bel die Hei­zung der Woh­nung mit dem Han­dy zu regu­lie­ren. Pro­blem ist jedoch die Sicher­heit: Die XML API bie­tet kei­ner­lei Authen­ti­fi­zie­rung an.  Der ers­te Ver­such war das absi­chern mit VPN. Der Kom­fort bleibt hier jedoch etwas auf der Stre­cke, da man mit dem Han­dy immer zuerst eine VPN Ver­bin­dung nach Hau­se auf­bau­en muss. Ein­fa­cher geht es natür­lich direkt per https (Dank DynDNS Dienst der Fritz­Box).

Die Auto­ri­sie­rung habe ich über einen Rever­se Pro­xy  in Form von NGINX auf mei­ner qnap Nas rea­li­siert. Die­ser soll eine Pass­wort Abfra­ge vor die API set­zen.  Anstel­le einer NAS wür­de sich hier natür­lich auch ein Raspber­ry PI anbie­ten. Län­ger­fris­tig will ich zwar die CCU durch die NAS kom­plett erset­zen, dazu fehlt mir aber erst ein­mal die Zeit.

Was ist nun zu tun:

Über die APP Mana­ger auf der Admi­nis­tra­ti­ons- Ober­flä­che instal­liert man zuerst das NGINX Paket.  Nun ver­bin­det man sich per SSH auf die NAS und wech­selt dort in das NGINX Ver­zeich­nis: /share/CACHEDEV1_DATA/.qpkg/Nginx/nginx. Direkt dort habe ich eine Pass­wort Datei mit dem Namen htpasswd ange­legt (vim). Deren Inhalt ist eine Lis­te mit User­na­men und gehash­ten Pass­wor­te die auf diver­sen Web­sites oder mit dem Kom­man­do htpasswd erzeugt wer­den kön­nen. Lei­der nur nicht direkt auf der Nas:

Der zwei­te Schritt ist nun die NGINX Kon­fi­gu­ra­ti­on. Im Unter­ver­zeich­nis conf befin­det sich die Datei nginx.conf.

In die­ser gibt es einen Bereich der mit Ser­ver { ein­ge­lei­tet wird.  Dar­in habe ich einen neu­nen loca­ti­on Bereich ein­ge­lei­tet.

Wird die Adres­se der nas anschlie­ßend gefolgt von /homeatic auf­ge­ru­fen wird  NGINX die Anfra­ge an die CCU umlei­ten.

Wesent­lich sind die Para­me­ter auth_basic_user_file wel­cher den Pfad zur zuvor erstel­len Pass­wort­da­tei ent­hält, char­set um Zei­chen­satz Pro­ble­me mit der API zu lösen und proxy_pass wel­cher die Adres­se der CCU im Loka­len Netz­werk angibt.

Zuletzt muss noch nginx auf der NAS neu gestar­tet wer­den. Was dazu der vor­ge­se­he­ne Weg ist habe ich nicht recher­chiert. Ich habe ihn ein­fach gekillt und neu gestar­tet:

 

Fer­tig.

 

2 Gedanken zu „Homematic xml api zugriff schützen“

  1. Das gan­ze hat­te bei mir etwa drei Mona­te funk­tio­niert. Seit Dezem­ber nicht mehr. Habe schon alles mög­li­che pro­biert, es geht ein­fach nicht. Wäre es mög­lich mir die gan­ze conf Datei zu sen­den oder zu pos­ten. Dann kann die­se noch­mal prü­fen.

    Dan­ke noch für die super Anlei­tung, hat­te mir sehr gehol­fen.

  2. Habe das glei­che aus­pro­biert, mit HTTP funk­tio­niert es, mit HTTPS nicht. Ich ver­mu­te, das liegt am (self signed) Zer­ti­fi­kat auf der CCU.
    Habe erfolg­los auch fol­gen­de Para­me­ter aus­pro­biert sowie das CCU Zer­ti­fi­kat auf der NAS gespei­chert:

    loca­ti­on / {
    proxy_pass https://backend.server.ip/;
    proxy_ssl_trusted_certificate /etc/nginx/sslcerts/backend.server.pem;
    proxy_ssl_verify off;

    … other pro­xy set­tings

    https://serverfault.com/questions/341023/nginx-as-reverse-proxy-with-upstream-ssl

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*