HomeAssistant auf Port 443 nutzen

cortlieb

Member
Um HomeAssistant mit Alexa zu verbinden habe ich versucht dieser Anleitung zu folgen.
Es hat fast geklappt, am Ende hat die Alexa aber trotzdem keine Geräte gefunden - aber egal, soll jetzt nicht das Thema sein.
Um eine Verbindung mit dem Alexa HomeAssistant Skill zu bekommen, muss HomeAssistant von Außen (das läuft über duckdns) über Port 443 erreichbar sein.
Irgendwie habe ich das schon mal hinbekommen, dann gab es irgendwelche Probleme und ich habe wieder auf den Standard-Port 8123 umgestellt.
Jetzt wollte ich das Ganze noch mal angehen, bekomme es aber nicht mehr hin.
Ich habe einfach an der Fritzbox den Port 443 von Außen auf Port 8123 intern freigegeben.
Bekomme dann aber keine Verbindung zur Weboberfläche. Ich habe statt https://<meinname>.duckdns.org:8123 dann https://<meinname>.duckdns.org:443 genutzt (der Port wird dann nicht in der Browser-Adresszeile angezeigt, vermutlich weil 443 der Standard https-Port ist).
In dem oben verlinkten Video wird empfohlen, Port 443 und 8123 von außen auf Port 8123 innen freizugeben. Das will meine Fritzbox aber nicht, ein Port innen darf nur mit einem Port außen verknüpft werden.

Hat jemand eine Tipp, was ich vergessen habe?
 

Barry Ricoh

Active member
Hallo,
ich hatte das gleiche Problem.
Der Punkt ist das man entgegen der Anleitung im Video KEINEN Externen Port angeben kann. Es wird zwar sozusagen von der Einrichtung angenommen, aber funktioniert nicht.
Der externe Port 443 muss auf HA freigegeben werden.
Habe das auch diese Woche erst gemacht.

Wenn du eine Adresse mit https:// angibst ist automatisch der Port 443 gemeint.
In der Fitzbox musst du die externe Portfreigabe 8123 löschen, und nur den https freigeben.
 

cortlieb

Member
Hmm, ich bin mir nicht sicher, ob ich verstehe, was du meinst.
Was heißt
Der externe Port 443 muss auf HA freigegeben werden.
Ich kann ja externe Ports nur in meinem Router freigeben, der ist immer vor meinem HA. Kann natürlich sein, das 443 als https Standar-Port sowieso immer freigegeben ist.
Wenn ich dich richtig verstehe, sollte ich HA so konfigurieren, dass es Port 443 statt 8123 nutzt.
Kannst du mir einen Tipp geben, wo ich das mache?
Einstellungen/System/Netztwerk/Home Assistant URL ?
 

Barry Ricoh

Active member
Nicht ganz richtig verstanden.
Du als Benutzer der Weboberfläche gehst weiterhin über den Port 8123 auf HA, da ist nichts zu ändern. Aber für den Zugriff von Alexa auf dein HA musst du den Externen Port 443 auf den Port 443 deines HA freigeben.
 

Anhänge

  • FF5F07C2-2E22-454E-86CB-AD39CDC0E59F.jpeg
    FF5F07C2-2E22-454E-86CB-AD39CDC0E59F.jpeg
    186,5 KB · Aufrufe: 8

cortlieb

Member
Ah, OK, also sprich beide Ports für HA freigeben, 8123 auf 8123, 443 auf 443.
Aber wenn ich das tue, komme ich weiter auf die Weboberfläche, in dem ich Port 8123 nutze - klar.
Wenn ich dann aber in der Alexa App bei den Skills den HomeAssistant Skill mit der Schaltfläche "ZUR VERWENDUNG AKTIVIEREN" aktivieren möchte, bekomme ich einen Verbindungsfehler "Fehler: Verbindung fehlgeschlagen".

Also habe ich zum Test Port 443 (extern) auf Port 8123 (intern) freigegeben.
Dann komme ich allerdings nicht mehr auf die Weboberfläche. Nicht über Port 8123, das ist klar, aber auch nicht, wenn ich versuche Port 443 zu nutzen. Das scheint dann allerdings etwas mit dem Zertifikat zu tun zu haben :unsure:.
verbindung_443.png
Dafür bekomme ich in der Alexa-App über "ZUR VERWENDUNG AKTIVIEREN" zu dem Anmelde-Bildschirm für HomeAssistant. Wenn ich dann meine Daten eingebe bekomme ich die Meldung "Verknüpfung mit HomeAssistant konnte diesmal nicht hergestellt werden". Aber das ist dann wohl das nächste Problem. Aber da bin ich immerhin einen Schritt weiter als im ersten Fall.

Wenn ich einfach nur Port 443 an der Fritzbox freigebe, müsste ich dann nicht noch irgendetwas an HA konfigurieren, damit es über Port 443 komuniziert?
 

cortlieb

Member
Aber dann kann ich die Weboberfläche nicht mehr erreichen, siehe Screenshot im meinem letzten Post.

Wobei die Meldung ja fast klingt, als wäre das Let's Encrypt Zertifikat für dieses Setup nicht geeignet. Aber das Zertifikat gilt doch nicht nur für einen bestimmten Port, sondern für die ganze Domain. :unsure:
 
Zuletzt bearbeitet:

Barry Ricoh

Active member
Ich versuche es nochmal anders zu erklären.
Ausgehend davon das du an der originalen HA Konfiguration nichts geändert hast, nutzt HA eine HTTP Verbindung auf Port 8123 (ohne S) um per Webbrowser auf die Weboberfläche zuzugreifen.
Alexa will aber ja garnicht auf die Weboberfläche zugreifen, sondern ja auf andere Art mit Homeassistant kommunizieren, und das eben zur Sicherheit unbedingt verschlüsselt. Dafür benutzt Alexa ein anderes Protokoll (nämlich HTTPS) und einen anderen Port (nämlich 443).
Da Alexa von außen kommt öffnest du für Alexa den externen Port 443 zu deiner HA Installation auf Port 443. Du gehst ja weiterhin von „innen“ mit deinem PC auf HA unverschlüsselt über HTTP und benutzt weiterhin den Port 8123 völlig unverändert.

Soweit der normale Zugriff.
Wenn das geht bist du erstmal ein Stück weiter.

Wenn du jetzt auch von außen kommen willst mit der App auf dem Handy zB musst du am Handy in der App den dort angegeben Port 8123 löschen.
Da steht dann deine „HTTPS:// duckdns Adresse“

Da ich Duckdns nicht nutze weis ich nicht ob in den Duckdns Einstellungen noch was geändert werden muss.
 

blurrrr

Well-known member
Da Alexa von außen kommt öffnest du für Alexa den externen Port 443 zu deiner HA Installation auf Port 443. Du gehst ja weiterhin von „innen“ mit deinem PC auf HA unverschlüsselt über HTTP und benutzt weiterhin den Port 8123 völlig unverändert.
Mag sein, dass ich mich irre, aber hat HA nicht nur "einen" Port, welcher entweder mit Zertifikat via HTTPS läuft, oder ohne Zertifikat via HTTP (s. https://www.home-assistant.io/integrations/http/)? Dann wäre es vermutlich Port 443 (Fritzbox) auf Port 8123 (HA, inkl. Zertifikat)? Allerdings wäre dann beim internen Zugriff auch ein Zertifikatsfehler vorhanden. Lösen könnte man das ganze, indem auch von intern einfach die externe Adresse anspricht. Allerdings dürfte da ggf. der Rebind-Schutz der Fritzbox Alarm schlagen, von daher sollte man für den gewünschten FQDN noch eine Ausnahme eintragen (s. https://avm.de/service/wissensdaten...re-Anfrage-aus-Sicherheitsgrunden-abgewiesen/). Wäre jedenfalls mein Verständnis der Dinge, aber vllt liege ich ja auch völlig daneben 🙃
 

cortlieb

Member
Ja, sowie @blurrrr schreibt, ist es bei mir.
Die Duckdns-Integration bringt ein Let's Encrypt-Zertifikat mit.
Ich erreiche HA intern (also wenn ich in meinem privaten Netz bin), wie extern (in einem fremden Netz) über die gleiche Adresse: https://<meinname>.duckdns.org:8123.
Für den Rebind-Schutz ist eine Ausnahme in der Fritzbox hinzugefügt.
Versuche ich das Ganze per http (ohne 's') aufzurufen, wird sofort auf https:// weitergeleitet.

Und genauso war mein Gedanke, einfach Port 443 (den Alexa möchte) auf 8123 (an dem HA lauscht) freizugeben.
Aber wenn ich die Weboberfläche unter https://<meinname>.duckdns.org:443 aufrufe, kommt die Fehlermeldung 5 Posts weiter oben ("Fehler: Gesicherte Verbindung fehlgeschlagen").
Das klingt für mich aber nicht so, als ob grundsätzlich keine Verbindung zustande kommt, eher als ob in diesem Setup das Zertifikat nicht richtig greift. Den Punkt verstehe ich aber noch nicht.
 

carsten_h

Active member
Aber wenn ich die Weboberfläche unter https://<meinname>.duckdns.org:443
Nur einmal grundsätzlich:
Der Port 8123 wird von Home Assistant benutzt, um die Webseite von Home Assistant zu zeigen. Ob das nun verschlüsselt oder nicht ist, ist erst einmal egal.
Wenn jetzt diese Alexa auf den Port 443 auf den Home Assistant Server zugreifen möchte, muß irgendetwas auf Home Assistant laufen, was auf dem Port 443 einen Dienst bereitstellt, sonst kann es ja nicht „einfach so“ gehen. Normalerweise reagiert Home Assistant nicht auf den Port 443.
Dieser Dienst, der den Port 443 bereitstellt, muß natürlich auch die Duckdns Zertifikate bereitstellen und kennen, die für die externe Adresse notwendig sind.

Die Frage ist also: Welcher Dienst (oder hier wahrscheinlich welches Addon (eine Integration kann das nicht)) stellt den Port bereit und hat er die Zertifikate richtig eingetragen?
 

blurrrr

Well-known member
Port 80 offen zu haben ist meiner Meinung nach jetzt auch kein Beinbruch, wenn es nur zur LE-Zertifikatsgenerierung/-verlängerung und Umleitung auf https genutzt wird. Primär wichtig ist nur, dass darüber keine sensiblen Daten im Klartext wandern.
 

cortlieb

Member
Wenn jetzt diese Alexa auf den Port 443 auf den Home Assistant Server zugreifen möchte, muß irgendetwas auf Home Assistant laufen, was auf dem Port 443 einen Dienst bereitstellt, sonst kann es ja nicht „einfach so“ gehen.
Hmmm, das ist ein guter Punkt.
Ich fasse mal mein Verständnis zusammen:
  • der Alexa-Skill nutzt eine so eine Art REST API, auch wenn ich nicht weiß, ob es das streng genommen ist.
    Da werden Schnittstellen angesprochen wie : https://<meinname>.duckdns.org:8123/auth/token
  • In HA, wird fast nichts getan außer:
    YAML:
    alexa:
      smart_home:
    in die config.yaml zu schreiben.

  • Dem Alexa Skill wird ein "Langlebiger Zugangs-Token" übergeben
  • Die Kommunikation geht theoretisch auch über Port 8123, das mag die Alexa aber nicht (an der Formulierung sieht man, dass ich nicht richtig den Hintergrund verstehe), sie möchte Port 443 benutzen.
    Nun gibt es zwei Möglichkeiten (lt. dem im ersten Post verllinkten Video):
    - HA Webinterface auf Port 443 umkonfigurieren (geht das?)
    - Portweiterleitung von 443(von außen) auf 8123 (intern) --> was bei mir, wie oben beschrieben dann mit der Web-GUI nicht funktioniert.
 

blurrrr

Well-known member
Portweiterleitung von 443(von außen) auf 8123 (intern) --> was bei mir, wie oben beschrieben dann mit der Web-GUI nicht funktioniert.
Das sollte aber funktionieren... Trenn Dich erstmal "grundsätzlich" von dem Gedanken, dass der "Port" eben "irgendwie" verhindert, dass irgendwas funktioniert, das ist nicht richtig... Hab dummerweise grade kein HA zur Hand, aber... Was meiner Auffassung nach definitiv funktionieren "sollte" ist folgendes:

- HA-Port bleibt auch 8123
- SSL-Zertifikat wird bei HA hinterlegt (damit ist HA nicht mehr via "http" ansprechbar, aber wie "https")
- Du richtest eine Portweiterleitung auf der Fritzbox ein (Fritzbox 443/TCP -> HA 8123/TCP)
- Du konfigurierst bei HA die "externe" und "interne" URL

--> extern: "https://<3,2,1,Deins!>.duckdns.org"
--> intern: "https://<HA-IP>:8123"

Wenn das nicht funktioniert, einfach mal HA neustarten und Webinterface via STRG+F5 komplett neuladen.

Was das hier angeht....
Die Duckdns-Integration bringt ein Let's Encrypt-Zertifikat mit.
... da gab es vor einiger Zeit mal bei einem Bekannten so ein Ding... irgendwo stand irgendwas von irgendwelchen Pfaden bzgl. der Zertifikate, aber - warum auch immer - haben die wohl nicht so ganz gepasst. Versichere Dich (!), dass die Zertifikate auch dort liegen, wo Du sie in der HA-Config angibst :)
 

Barry Ricoh

Active member
Also ich kann ja nur nach wie vor sagen das es bei mir funktioniert.
Natürlich muss unter HA was laufen was Port 443 „abhört“, und das ist HA selber. HA unterstützt ja auch verschlüsselte Kommunikation, eben auf Port 443. Die haben nur den Standard Port der unverschlüsselten Kommunikation verschoben von 80 auf 8123.
Mach doch zum Test mal einfach die Verschlüsselte Kommunikation von 8123 wieder rückgängig.
 

carsten_h

Active member
Die haben nur den Standard Port der unverschlüsselten Kommunikation verschoben von 80 auf 8123
Ist schon klar.
Ich habe es hier etwas anders laufen. Bei mir ist Home Assistant immer unverschlüsselt. Dafür läuft bei mir das "Nginx Proxy Manager"-Addon (das ist ein Reverse-Proxy). Damit benutze ich subdomains in meiner duckdns-domain zur Kommunikation mit verschiedenen Servern in meinem Heimnetz.

Für Home Assistant habe ich dadurch lokal den Zugang über:
http://192.168.178.108:8123
von extern ist es dann (ohne Portnummer!):
https://<mein Home Assistant-Name>.<meine duckdns-domain>.duckdns.org

Ein anderer Server ist erreichbar über:
https://<mein anderer Servername>.<meine duckdns-domain>.duckdns.org

So funktioniert auch auf den neuesten macOS/iOS/iPadOS Versionen der Zugriff problemlos, da es teilweise nicht möglich ist über https auf eine IP-Adresse zuzugreifen, da ja der Servername nicht stimmt.

In der Fritz!Box ist eine Weiterleitung vom externen Port 80 auf 192.168.178.108:8088 und vom externen Port 443 auf 192.168.178.108:443 eingerichtet. Das sind die beiden Ports auf die der Nginx Proxy Manager lauscht.
Der Nginx Proxy Manager sorgt auch dafür, daß die LetsEncrypt-Zertifikate, die für die subdomains ja extra noch notwendig sind, immer aktuell gehalten werden.

Mit so etwas müßte dann auch die Kommunikation mit Alexa funktionieren, da ja von extern per https mit dem Standardport 443 zugegriffen wird.
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
1.709
Beiträge
21.286
Mitglieder
1.217
Neuestes Mitglied
DUC750
Oben