HomeAssistant auf Port 443 nutzen

Also soweit ich weiss, spricht das Ding nur noch https, wenn man ein Zertifikat hinterlegt hat :unsure: Ist ja jetzt nicht grade so, als wäre die Fritzbox ein Reverse-Proxy mit SSL-Terminierung 😁
Deshalb ja oben meine Beschreibung mit einem Reverse Proxy, mit dem das Ganze extern per https und intern mit http geht. Damit hat man mit dem ganzen Thema keinerlei Probleme mehr.
Wenn man HA komplett auf https umstellt, bekommt man das intern nicht mehr vernünftig hin. Man muss dann immer den Zertifikatfehler bestätigen, was aber in manchen Umgebungen nicht geht.
 
Wenn man HA komplett auf https umstellt, bekommt man das intern nicht mehr vernünftig hin. Man muss dann immer den Zertifikatfehler bestätigen, was aber in manchen Umgebungen nicht geht.
Kann ich so nicht bestätigen, wie gesagt:
Vorher (alles war gut):
  • Fritzbox: Port 8123 (extern) --> 8123 (intern)
  • Zugriff in meinem Netz und von außerhalb meines Netzes: https://<mein_name>.duckdns.org:8123 --> läuft
  • Einziges Problem: um einen Alexa Skill für den Zugriff auf HA zu nutzen, muss dieser Skill HA unter Port 443 erreichen.
 
Aus Sicherheitserwägungen sollte es doch egal sein, ob ich Port 8123 oder 443 verwende?
Naja, 443 ist halt "Standard" für "https", "8123" hingegen nicht, allerdings Standard für HomeAssistant. Wenn man etwas verschleiern möchte, sollte man sich einfach abseits der Standards bewegen (aber auch da gibt es ganz viele 😁). Theoretisch kann man es aber auch einfach auf 443 lassen... Ein Reverse-Proxy dazwischen wäre halt quasi nochmal eine Schutzschicht mehr, da extern nur mit dem Proxy und nicht direkt mit HA spricht. Auf der anderen Seite... die meisten Webserver laufen auch so (direkt am Netz), also von daher.... Problematisch wird das eher, wenn es irgendwelche Sicherheitslücken bzgl. HomeAssistant bzw. den eingesetzten Produkten gibt.
 
Ja, das geht auch, nur könnte ich dann innerhalb der App oder der Home Assistant Webseite nicht auf einige Sachen zugreifen.
Z.B. habe ich in der linken Seitenleiste Zugriff auf den Nginx Proxy Manager (Addon) und der ist ein http-Link, auch Tasmoadmin (Addon) ist dort per http verlinkt. Wenn man jetzt von der externen Adresse auf die Seite zugreift, kann man diese beiden Sachen nicht mehr aufrufen, da man innerhalb eines https Zugriffs nicht auf http wechseln kann. Daher brauche ich diesen lokalen http Zugriff auf Home Assistant.
 
Z.B. habe ich in der linken Seitenleiste Zugriff auf den Nginx Proxy Manager (Addon) und der ist ein http-Link, auch Tasmoadmin (Addon) ist dort per http verlinkt.
Sollte das nicht automatisch alles https sein, wenn es "alles" über den NPM geht? :unsure: Mitunter fehlt ggf. noch eine entsprechende rewrite-Regel (http zu https), dann kommt es via https beim NPM an und der kann dann ggf. via http mit dem Ziel sprechen... aber wir wollen ja jetzt auch nicht den Thread hier kapern... 😅
 
Sollte das nicht automatisch alles https sein, wenn es "alles" über den NPM geht?
Nein, z.B. Tasmoadmin läuft als Addon und steht so in der configurarion.yaml:
YAML:
panel_iframe:
  tasmoadmin:
    title: TasmoAdmin
    icon: mdi:lightbulb-on
    url: http://192.168.178.108:9541
  nginx:
    title: Nginx
    icon: mdi:server
    url: http://192.168.178.108:81

Es ist also über die Home Assistant IP, nur mit einem anderen Port erreichbar. Aber diese beiden Ports möchte ich nicht nach außen freigeben, das möchte ich nur lokal einstellen.
 
Dank @blurrrr s (sehr) tatkräftiger Hilfe (vielen Dank noch mal!) ist das Problem nun gelöst.
Letztendlich lag es am Handling von IPv6-Adressen für den duckdns-Service. Im HA-Addon war unter IPv6 nichts eingetragen (scheint die Standardeinstellung zu sein), dort steht jetzt default.
Außerdem war auch in der Fritzbox duckdns als DynDNS-Service eingetragen.
Die Vermutung ist, dass dann die Fritzbox ihre eigene IPv6-Adresse an duckdns geschickt hat und die dann der Adresse des duckdns HA-Addons (für HA) in die Quere gekommen ist.
Deswegen hatte ich wohl auch manchmal den Eindruck von unterschiedlichem Verhalten, je nachdem, ob mein Endgerät IPv4 oder IPv6 genutzt hat.
 
Und Alexa hast du auch am laufen?
Nein noch nicht.
Aber ich komme immerhin so weit, dass in der Alexa App der HA Anmeldebildschirm gezeigt wird, das ging vorher nicht.
Dann kommt allerdings die Verbindung mit dem Skill nicht zustande.
Aber das hat schon mal funktioniert, ich denke, ich muss die Schritte zur Erstellung des Skills noch mal durchgehen und die Änderungen, die durch die Anpassung von HA entstanden sind dabei berücksichtigen.
Das lief zwar auch schon mal, aber dann wurden absolut keine Geräte gefunden. Da gibt es so Gerüchte, dass es mit Lokalisierungs-Einstellungen zu tun.
It’s a Long Way to Tipperary!

Läuft es denn bei dir?
Aber ich denke, da wäre es wahrscheinlich sinnvoll einen neuen Thread zu eröffnen, sonst geht das hier zu bunt durcheinander.
 
Ich habe HA zwar erst seit ca. 10 Tagen, aber ein Großteil der Einrichtung habe ich damit verbracht, das ganze mit dynamischen DNS, https und IPv6 richtig zum laufen zu bekommen. Jetzt klappt es, sowohl intern als auch extern unter https://[meinedomain].duckdns.org/. Ich habe auch eine Fritzbox und dahinter HA auf einem Odroid-N2+ mit HAOS. Entscheidend ist, dass das auch mit IPv6 funktioniert im internen Netz.

Hier einmal die groben Schritte (das ist keine detaillierte Anleitung, bitte bei den einzelnen Schritten selbst die Anleitung überprüfen). Ich hoffe, dass die Reihenfolge stimmt. Während der Einrichtung immer die lokale IP-Adresse nutzen (z.B. http://192.168.1.2:8123/). Wie Ihr am Code seht, nutze ich auch die secrets.yaml-Datei, damit ich hier den Code einfach kopieren kann.
  1. In der Fritzbox HA eine feste IP-Adresse vergeben und benennen. Diese auch in HA unter System->Network->IPv4 als statisch konfigurieren; IPv6 kann man auf "DHCP" lassen (wobei hier statisch vielleicht auch sinnvoll wäre, werde ich mir noch einmal überlegen).
  2. Erst einmal bei DuckDNS anmelden und eine eigene Subdomain für seinen HA aussuchen (anders als für Fritzbox, wenn man das dort auch nutzt).
  3. Das offizielle "File Editor"-Add-on installieren (oder wer will das etwas überdimensionierte "Studio Code Server"-Add-on).
  4. Dann muss man den Home Assistant Community Store (HACS) einrichten (einfach der Anleitung folgen).
  5. Dann aus dem HACS die "Home Assistant DuckDNS IPV4 and IPV6 updater"-Integration installieren, einrichten und aktivieren, dafür muss in die configuration.yaml folgender Code:
    YAML:
    duckdns_ipv4_ipv6:
      access_token: !secret duckdns_access_token
      domain: !secret duckdns_domain
      ipv4_mode: duckdns
      ipv6_mode: nameserver
  6. Dann in der Fritzbox die Ports 443 und 80 für IPv4 und IPv6 öffnen und auf HA weiterleiten (Port 80 wird nur kurz durch Let's Encrypt genutzt zur Ersteinrichtung und alle zwei Monate zur Erneuerung und ist ansonsten geschlossen.). Außerdem den DNS-Rebind-Schutz für die DuckDNS-Domain-deaktivieren.
  7. Dann mit dem Terminal bzw. unter Windows cmd ausprobieren, ob es geklappt hat: "nslookup [mydomain].duckdns.org". Hier müssen dann sowohl die externe IPv4-Adresse der Fritzbox als auch die globale IPv6-Adresse von HA angezeigt werden. Wenn IPv6 nicht angezeigt wird, ist eventuell der DNS-Rebind-Schutz (siehe Punkt 5) noch aktiviert.
  8. Als nächstes das offizielle Let's-Encrypt-Add-on installieren, konfigurieren mit der vollen DuckDNS-Subdomain, E-Mail-Adresse, Challenge "http" und Port 80 und dann starten. Konfiguration:
    YAML:
    domains:
      - [full DuckDNS Domain]
    email: [E-Mail-Adresse]
    keyfile: privkey.pem
    certfile: fullchain.pem
    challenge: http
    dns: {}
  9. Dann das offizielle "NGINX Home Assistant SSL proxy"-Add-On installieren:
    YAML:
    domain: [volle DuckDNS-Subdomain]
    hsts: max-age=31536000; includeSubDomains
    certfile: fullchain.pem
    keyfile: privkey.pem
    cloudflare: false
    customize:
      active: false
      default: nginx_proxy_default*.conf
      servers: nginx_proxy/*.conf
  10. Und letztlich noch folgenden Abschnitt in die configuration.yaml einfügen und dann NGINX starten/neustarten
    YAML:
    http:
      use_x_forwarded_for: true
      trusted_proxies:
        - 172.30.32.0/23
        - 127.0.0.1
        - !secret local_ha_IPv4_address
    Das IP-Adressen-Intervall 172.30.32.0/23 muss so bleiben! Das ist eine interne IP-Adresse vom Docker Container. Habe ich aber auch noch nicht so ganz verstanden, wie das funktioniert. Wenn man im "Terminal&SSH"-Add-on ifconfig eingibt, wird eine Adresse aus dem Intervall angegeben.
  11. In HA unter System->Network->Home Assistant URL beide URLs auf https://[meinedomain].duckdns.org stellen.
Dann vielleicht alles neu starten (System->Hardware->drei Punkte oben rechts), so dass alle Konfigurationen neu geladen werden und die Services neu gestartet werden. Jetzt müsste der Zugang sowohl extern als auch intern über https://[meinedomain].duckdns.org funktionieren. Intern geht das dann vermutlich nur über IPv6 (automatisch).

Ich habe das jetzt nicht noch einmal getestet, aber hoffe, dass ich keinen Schritt vergessen habe. Bitte bescheid geben, wenn etwas hakt.

Ich dachte, dass ich irgendwo im Userinterface auch noch Port 443 eingestellt habe, aber vielleicht erinnere ich mich nicht richtig. Das scheint automatisch der Fall zu sein bei https.
 
"NGINX Home Assistant SSL proxy"
Wenn man anstelle dieses Add-ons das von mir oben schon erwähnte "Nginx Proxy Manager"-Add-On installiert, kann man sich zumindest die Installation des "Let's encrypt"-Add-Ons sparen.
Außerdem muß man die Konfiguration dann nicht über die configuration.yaml vornehmen, sondern bekommt dafür eine GUI. Dort kann man auch noch für andere Geräte im Heimnetz dann subdomains anlegen. Let's Encrypt ist dort enthalten und sorgt für die Erneuerung aller angelegten Zertifikate für die Subdomains.

Das "Nginx Proxy Manager"-Add-On ist ein Community Add-On, das von "Frenck" einem der Home Assistant Entwickler stammt.
 
Zuletzt bearbeitet:

Letzte Anleitungen

Statistik des Forums

Themen
4.379
Beiträge
45.225
Mitglieder
3.978
Neuestes Mitglied
HAbeginner
Zurück
Oben