Guten Abend,
ich habe schon ein paar Mal versucht Home Assistant auf https umzustellen. Ich war verwundert, dass es nicht von Haus aus aktiviert ist wie bei jedem Router heutzutage. Nun finde ich immer nur Anleitungen mit DuckDNS und man solle dort einen Account einrichten.
Ich möchte jedoch einfach nur lokal auf Home Assistant über HTTPS zugreifen.
Hat mir jemand ein aktuelle einfache Anleitung dazu?
Addon: Let’s encrypt wurde installiert aber auch dort will er wieder DNS.
Ich bin nicht sicher, was Du für einen Router verwendest. Ich kenne nicht einen, der für die interne Verschlüsselung von Haus aus ein gültiges Zertifikat anbieten kann. Vermutlich auch, weil man meist per IP zugreift. Und da liegt es in der Natur der Sache.
Eine Anleitung für Home Assistant (und grundsätzlich auch andere Geräte) habe ich allerdings mal geschrieben.
Ich muss @tarag recht geben. Die Router / NAS / Proxmox was auch immer, haben mitunter ein Zertifikat, aber nur ein selbsterstelltes, wo du in jedem Browser eine Warnung bekommst.
Mit Lets Encrypt würdest du ja deinen HA noch außen “öffnen”. Bitte beschreibe mal, was du dir für einen reine interne Verwendung von HA, vom dem Zertifikat und der HTTPS Verbindung versprichst. Ist ein Zugriff von außerhalb deines Netzwerk nicht (außer ggf. mit VPN) vorgesehen, sehe ich hier keine Vorteile zwischen https und http. Es sei denn du hast intern Geräte, die deine Verbindung zum HA versuchen auszuspionieren.
Wenn das so ist, hast du größere Probleme wie ein https-Zertifikat.
Nein. Meine Anleitung funktioniert mit Let’s encrypt, ohne jegliche Freigabe nach außen.
Und einen Nachteil in der Verschlüsselung kann ich ebenso nicht feststellen.
Danke für Eure Antworten. Habe mich durch die Links inspirieren lassen. SSL sollte aktiviert werden, da ESPHome gesagt hat, es wird nur mit SSL funktionieren. Es ging aber dann auch ohne SSL. Thema Router, meine Fritzbox ist über https://192.168.1.1. erreichbar.
Später soll evtl. mal Zugriff von außen kommen. Aber auch so fühlt es sich bessern an. Meine Router spreche ich alle mit https an. Man kann ja nie wissen. Jedes IoT Gerät mit closed Source im eigenen Netz ist eine potenzielle Gefahr. Absichtlich oder unabsichtlich.
Nun habe ich mir ein Zertifikat erstellt und bin erreichbar über https://homeassistant.local:8123/
Das habe ich so gemacht bei Home Assistant OS 14.2:
openssl genrsa -out privkey.pem 2048
openssl req -new -x509 -key privkey.pem -out fullchain.pem -days 3650
mv privkey.pem /ssl/
mv fullchain.pem /ssl/
nano /homeassistant/configuration.yaml
- da hinzufügen:
http:
ssl_certificate: /ssl/fullchain.pem
ssl_key: /ssl/privkey.pem
ha core restart
Muss nun noch etwas gemacht werden? Denn ich bekomme diese Meldung:
“SSL ist ohne externe oder interne URL konfigurier”
“Home Assistant hat festgestellt, dass SSL auf deiner Instanz eingerichtet wurde, aber keine benutzerdefinierte
externe Internet-URL festgelegt wurde.
Dies kann zu unerwartetem Verhalten führen. Text-to-Speech schlägt möglicherweise fehl, und Integrationen
können sich möglicherweise nicht korrekt mit deiner Instanz verbinden.
Um dieses Problem zu beheben, gehe zu Einstellungen > System > Netzwerk; konfiguriere unter dem Abschnitt
„Home Assistant URL“ deine neuen „Internet“- und „Lokales Netzwerk“-Adressen, die deiner neuen
SSL-Konfiguration entsprechen.”
Was für ein Eintrag ist das den hier unter lokales Netzwerk? Was sollte da stehen? Und warum hat es da ein Problem?
Dann habe ich noch diesen Eintrag hinzugefügt zur configuration.yaml
homeassistant:
internal_url: "https://homeassistant.local:8123"
Nun bekomme ich keine Warnung mehr.
Freue mich über weitere Hinweise dazu.
Neu:
Wäre ja zu einfach: Nun funktioniert die Home Assistant App auf dem Android nicht mehr wegen ungültigem Zertifikat. Kann man da keine Ausnahme hinzufügen?
2. Home Assistant soll weiterhin auch über HTTP ohne HTTPS erreichbar sein, wie mache ich das?
Das hatten wir letztens erst. Nach der Umstellung der yaml auf HTTPS gab es dort massive Probleme.
Ich probiere noch ein wenig und sonst deaktiviere ich das (leider) wieder. Habe es nur getestet, da ich hier schon gefragt hatte und dieses Thema hier nicht unabgeschlossen lassen wollte
Hattest du dir denn den Link von @tarag angeschaut?
Ja, habe ich, da muss man sich bei einem externen Dienstleister registrieren. Was ich vermeiden möchte und was auch normalerweise nicht nötig ist. Da nehme ich wieder das Beispiel Router, hier ist es auch kein Problem von Android aus auf den Router mit einem selbst erstellten Zertifikat via HTTPS zuzugreifen.
Ich habe das Zertifikat nun bei Android importiert / hinterlegt. Aber scheinbar interessiert sich die Home Assistant App nicht dafür.
Evtl. ist die Meldung nun aber etwas anders:
Der Home Assistant-Hostname und das Zertifikat stimmen nicht überein.
(das war da ich mit IP getestet habe)
Mit homeassistant.local kommt wieder:
Beim Laden von Home Assistant ist ein Fehler aufgetreten. Was für ein Fehler wird nicht gesagt.
Neu:
Im Hintergrund steht “net::ERR_NAME_NOT_RESOLVED”
Auch über Android Browser geht es nur mit der IP und nicht mit Domainname, NS_ERROR_OFFLINE
Das einfachste wäre zusätzlich zu HTTPS auch HTTP erlauben
Welchen Sinn sollte das denn haben?
Damit es über die App wieder funktioniert.
Hier geht es evtl. weiter: Ich hatte das Zertifikat als CA importiert nicht als VPN
Please refer to your device and Android version documentation to install the certificate. Make sure to install the certificate as a “VPN & app user certificate”.
Getting Started | Home Assistant Companion Docs
Das geht aber nicht, beim Importieren kommt dann der Fehler: “Diese Datei kann nicht als VPN- oder App-Zertifikat verwendet werden”
Wenn Du Dir eigene Zertifikate erstellen willst, kannst Du das ja problemlos tun. Anleitungen gibt es dazu ohne Ende.
Dann hinterlegst Du diese Zertifikate und musst halt Ausnahmen einrichten oder hast immer Fehler.
Aber das ist nichts HA spezifisches.
So, ich hatte es deaktiviert und versuche es nun nochmal neu.
- Zertifikat wurde erstellt
- configuration.yaml
http:
ssl_certificate: /ssl/fullchain.pem
ssl_key: /ssl/privkey.pem
ha core restart
Home Assistant ist nun unter HTTPS erreichbar
Problem 1: Warnung bei den Netzwerkeinstellungen Lokales Netzwerk
Ungültige lokale Netzwerk-URL
Lösung 1: Schalter “Automatisch” deaktivieren und “https://homeassistant.local:8123” eintragen. Warnung ist weg.
Problem 2: Home Assistant Android Companion App akzeptiert keine selbst signierten Zertifikate und bietet keine Möglichkeit eine Ausnahme zu erstellen.
Lösungsversuche 1 zu Problem 2:
home-assistant docs: using-a-self-signed-certificate-leads-to-a-blank-page-in-android
Nein, der Android Browser kann die Seite aufrufen und eine Ausnahme hinzufügen
Lösungsversuche 2 zu Problem 2: CA Zertifikat in Android importieren.
Kopieren fullchain.pem auf das Telefon, dann importieren von “CA-Zertifikat”
Erfolgreich importiert, weiterhin kein Zugriff über die Companion App möglich.
Meldung: HA Hostname und Zertifikat stimmen nicht überein.
Prüfe Cert: CN = homeassistant.local
Prüfe App: URL = https://homeassistant.local:8123
Ich finde unzählige Leute die Probleme damit haben, alle fragen sich warum man nicht einfach eine Ausnahme hinzufügen kann und warum dieses Problem nur bei der Companion App auftritt. Ich bin auch etwas frustriert, dass einem hier scheinbar Steine in den Weg gelegt werden. Benutzerfreundlich ist das nicht.
Wie gesagt, ich brauche es gerade nicht zwingend, da das Addon ESPHome Device Builder doch ohne HTTPS funktioniert. Ich konnte es nur nicht glaube, dass es so schwer ist und wollte dieses Thema hier ordentlich schließen und lösen. Muss nun aber aufgeben.
Ja sicher, online mit eigener öffentlicher Domain oder mit einem Service-Dienstleister wie oben besprochen ist das kein Problem. Schade, dass es nicht lokal funktioniert. Evtl. finden sich ja noch Lösungsansätze. Diese probiere ich dann gerne.
Wünsche einen schönen Abend.
Genau das ist ja das Problem, das geht nicht in der Android Companion App
Ich weiß. Daher ja meine Anleitung, wie man korrekte Zertifikate erstellen kann.
Wobei man genau genommen kann ein Zertifikat auch von diversen anderen Stellen bezogen und eingebunden werden.
Auch ein Lets Encrypt Zertifikat könnte man anders erstellen und von Hand einbinden.
Dass die Companion App selbst erstellte Zertifikate verweigert finde ich konsequent und richtig …
Finde es Klasse, dass du eine Anleitung geschrieben hast, werde das evtl. auch später so umsetzen. Nur wollte ich ja zuerst eine lokale Lösung umsetzen. Daher hatte ich speziell danach gefragt.
Warum konsequent? Ich halte es persönlich für unnötig und ein Hindernis. Ein selbst signiertes Zertifikat ist genau so sicher. Nur ist man dann nicht auf einen externen Dienstleister oder Service angewiesen. Das würde ich für konsequent halten
Grüße
Naja, was heißt unnötig von deiner Seite? Ich hatte ja schon einmal angemerkt, das ich!!! es eher für unnötige halte, wenn der Netzwerkverkehr nur intern läuft, auf https zu setzen. Ich habe eine OpnSense und darauf den HA Reverse Proxy. Der ACME Client auf der OpnSense erstellt und erneuert die Zertifikate und der interne Verkehr bleibt intern auf https, aber durch den HA Proxy. Brauche ich das zwingend intern? Nein. Weder um auf meinem Proxmox Client zuzugreifen noch auf den Adguard und Unifi Controller LXC. Geht es? Aber natürlich. Aber warum intern so ein Aufwand betreiben?
Die HA App funktioniert im internen WLAN/LAN einwandfrei ohne https. In der Zeit wo du all das probiert hast, hättest du die wahrscheinlich Methoden (ala @tarag ) überlegen und umsetzen können. Aber wie gesagt: Nur für interne Kommunikation, wäre mir persönlich der Aufwand und Sucherei für den letztendlichen Nutzen doch zu klein.
Aber dennoch weiterhin viel Erfolg .
Danke, ja, du hast ja recht. Ich versuche oft hartnäckig ein spezielles Problem zu lösen. Den meistens bekomme ich das mit viel Aufwand dann auch genauso hin. Mit viel viel Zeit und Mühe. Daher: ich werde das nun nicht weiter versuchen. Ziel später ist ja dann auch, Zugriff von außen.
Danke für Eure Beiträge und Hinweise.
PS: Trotzdem fände ich eine Ausnahme in der Companion App ein tolles Feature
VPN, Cloudflare oder ein Reverse Proxy bieten diverse Möglichkeiten.
Funktioniert eben nicht einwandfrei ohne https. Wenn du eine Kamera eingebunden hast und auf dein Mikro zugreifen möchtest, funktioniert das eben nicht ohne https. Dies nur als ein Beispiel