Dokumentation: Jarvis über eigene Domain mit Reverse Proxy und SSL #2507
TZanke
started this conversation in
Show and tell
Replies: 3 comments 2 replies
-
|
Ist mal schnell heruntergeschrieben. Ich werde da noch mal drüber lesen, vielleicht fehlt auch noch was. Feedback willkommen. |
Beta Was this translation helpful? Give feedback.
1 reply
-
|
Habe es so erstmal übernommen. Danke. |
Beta Was this translation helpful? Give feedback.
1 reply
-
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Wie bekommt man Jarvis über einen Reverse Proxy unter einer eigenen Domain zum laufen (NGINX)
8082öffnet.8400aufrufen, das sollte genauso funktionieren, nur dass/jarvis/in der URL nicht mehr benötigt wird.Wenn hier etwas nicht klappt, löscht am besten mal den Browserspeicher für die Domain. Experten löschen via
F12unter Web-Speicher beim Local Storage dieparamsundrecentConnections.httpeure.ipund Port8400. Außerdem denWebsockets Supporteinschalten.Sollte Jarvis sich nicht öffnen und nach der IP und dem Port fragen, löscht am besten wieder wie oben erklärt den Browserspeicher. Zudem ist es ratsam in den Einstellungen (wenn die nicht eh schon von alleine angezeigt werden) unter dem Tab
Verbindungenden Port zu setzten, den euch NGINX nach außen zur Verfügung stellt. Das wäre Standardmäßig Port80.Ihr leitet jetzt also den Standard Internetort
80über den NGINX auf eure Server IP um, auf dem wiederum Jarvis unter dem Jarvis-Standard Websocket Port8400läuft.Jarvis mit Reverse Proxy über SSL
WebAdapter des IOBroker auf. Um SSL einzuschalten, muss in der Instanzkonfiguration dieVerschlüsselung (HTTPS)eingeschalten werden. Obacht: Wenn mehrere Webinstanzen existieren, bitte die auswählen, die Jarvis zur Verfügung stellt. Achtung: Danach funktioniert der Zugriff über HTTP bzw. Port80nicht mehr! Auch alle anderen Dienste, die über diesen Webadapter laufen müssen, nun per HTTPS geöffnet werden.Die Standardzertifikate sind ausreichend, solange man damit leben kann, dass die Zertifikate nicht als gültig im Browser angezeigt werden. Aber dazu später mehr.
Jarvis sollte jetzt über HTTPS und eurer eigenen Domain verfügbar sein. Das Zertifikat ist allerdings noch nicht valide. Wenns nicht klappt am besten die Jarvis Instanz noch mal neu starten und den Trick mit den Browserdaten löschen von oben anwenden. Wenn Jarvis den Port erfragt oder man in die Einstellungen kommt, ist auch hier wieder Port
80benutzen, denn noch liefert NGINX per HTTP aus.Let's Encrypt Zertifikat
DNS-01 challenge.Siehe. https://letsencrypt.org/de/docs/challenge-types/
Dazu benötigt wird allerdings ein DNS Anbieter, der es ermöglicht einen DNS Eintrag temporär für die Erstellungszeit des Zertifikats anzulegen. Ob der Anbieter dies unterstützt, findet man hier heraus: https://github.com/acmesh-official/acme.sh/wiki/dnsapi
Zusatzinfo: das
acme.shScript wird intern von NGINX zur Zertifikatserstellung verwendet. Andere Dienste nutzen möglicherweiseacme.js. Dort gibt es deutlich weniger Anbieter: https://www.npmjs.com/package/acme#challenge-callbacksIn meinem Fall habe ich zum Test ein Konto bei
dynu.comerstellt und bin bisher ganz zufrieden. Für Nutzer vonafraid.orgfunktioniert es im kostenlosen Modus enttäuschenderweise nicht.Anschließend wird der API-Key, der bei

dynu.comfür die jeweilige Domain zu finden ist, benötigt.Es ist möglich, einen zusätzlichen Key nur für NGINX anzulegen. Hierfür verweise ich aber auf die Dokumentation des jeweiligen Anbieters.
Bei Verwendung von
dynu.comsollte es nun so aussehen.Speichern und es wird ein Zertifikat erstellt.
Hat alles geklappt, ist das Zertifikat jetzt im NGINX zu sehen.

Jetzt das Zertifikat im DNS Eintrag für NGINX verwenden. Dazu wieder die Jarvis Domain editieren und im Tab

SSLfolgendes auswählen:Unter der Domain ist jetzt über
HTTPSJarvis mit einem gültigen Zertifikat zu erreichen. Diesmal muss der Websocket Port allerdings auf den Standard-SSL Port443gesetzt werden!Beta Was this translation helpful? Give feedback.
All reactions