Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [gelöst] https + letsencrypt will einfach nicht laufen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] https + letsencrypt will einfach nicht laufen

    This topic has been deleted. Only users with topic management privileges can see it.
    • R
      rollerfreak2 last edited by

      Ich hab aktuell noch ein Problem mit meinem iobroker in Verbindung mit https + letsencrypt. Die iobroker läuft auf einer synology DS218+ die ebenfalls mit https abgesichert ist und ein eigenes letsencrypt Zertifikat hat (sollte zwar nichts zu Sachen tun aber vorsichtshalber wollte ich es mal erwähnen).

      Nun hab ich im admin adapter https und auth angeschaltet.
      17182_1.png
      Danach hab ich versucht mich zu verbinden, das ging was aber unsicher wegen dem fehlenden Zertifikat. Also hab ich im admin adapter letsencrypt angeschaltet.
      17182_2.png
      Nun bin ich in die Systemeinstellung und hab dort das letsencrypt konfiguriert.
      17182_3.png
      Wenn ich mich nun via meiner Domain verbinden will (also https://domain.de:8081) dann geht das einfach nicht. Die domain ist genau die gleiche die ich vorher unter Systemeinstellung eingetragen habe.

      Wenn ich in den iobroker data Ordner schau ist zwar der letsencrypt Ordner vorhanden aber leer.
      17182_4.png
      Port 443 + 80 sind auf die IP meines NAS weitergeleitet. Was etwas seltsam ist, die Portweiterleitung con 443 sieht in meiner Fritz.Box etwas komisch aus bezüglich der Port extern vergeben, aber die kann ich gar nicht ändern.
      17182_5.png
      Als Fehler bekomm ich im chrome "ERR_CONNECTION_REFUSED".

      Hat jemand eine Idee was ich falsch mache?

      1 Reply Last reply Reply Quote 0
      • R
        rollerfreak2 last edited by

        Zwei Schritte weiter bin ich gekommen. Ich hab mal in die logs vom iobroker geschaut und festgestellt das die letsencrypt version nicht die richtige ist.

        host.NAS	2019-01-05 14:36:58.775	info	Restart adapter system.adapter.admin.0 because enabled
        host.NAS	2019-01-05 14:36:58.775	error	instance system.adapter.admin.0 terminated with code 0 (OK)
        host.NAS	2019-01-05 14:36:58.775	error	Caught by controller[8]: Just run that real quick, restart, and everything will work great.
        host.NAS	2019-01-05 14:36:58.775	error	Caught by controller[7]: npm install --save le-acme-core
        host.NAS	2019-01-05 14:36:58.775	error	Caught by controller[7]: Hey, this isn't a big deal, but you need to manually add v1 support:
        host.NAS	2019-01-05 14:36:58.775	error	Caught by controller[6]: === Error (easy-to-fix) ===
        host.NAS	2019-01-05 14:36:58.775	error	Caught by controller[3]: Please update to Let's Encrypt v2 (ACME draft 12)
        host.NAS	2019-01-05 14:36:58.775	error	Caught by controller[3]: Let's Encrypt v1 is deprecated.
        host.NAS	2019-01-05 14:36:58.775	error	Caught by controller[2]: === WARNING ===
        host.NAS	2019-01-05 14:36:58.775	error	Caught by controller[1]: Detected Let's Encrypt v01 URL (deprecated). Changing version to v01.
        
        

        Also bin ich via putty und ssh auf das NAS und hab via npm install –save le-acme-core das letsencrypt aktualisiert.

        Jetzt bekomme ich folgende Fehlermeldung:

        host.NAS	2019-01-05 16:49:16.342	error	instance system.adapter.admin.0 terminated with code 0 (OK)
        host.NAS	2019-01-05 16:49:16.342	error	Caught by controller[6]: port: 80 }
        host.NAS	2019-01-05 16:49:16.342	error	Caught by controller[6]: address: '::',
        host.NAS	2019-01-05 16:49:16.342	error	Caught by controller[6]: syscall: 'listen',
        host.NAS	2019-01-05 16:49:16.342	error	Caught by controller[6]: errno: 'EADDRINUSE',
        host.NAS	2019-01-05 16:49:16.342	error	Caught by controller[6]: code: 'EADDRINUSE',
        host.NAS	2019-01-05 16:49:16.342	error	Caught by controller[6]: at Decoder.add (/volume1/homes/admin/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-parser/index.js:251:12)
        host.NAS	2019-01-05 16:49:16.342	error	Caught by controller[6]: at Decoder.Emitter.emit (/volume1/homes/admin/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20)
        host.NAS	2019-01-05 16:49:16.342	error	Caught by controller[6]: at Decoder. <anonymous>(/volume1/homes/admin/opt/iobroker/node_modules/component-bind/index.js:21:15)
        host.NAS	2019-01-05 16:49:16.342	error	Caught by controller[6]: at Manager.ondecoded (/volume1/homes/admin/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/manager.js:345:8)
        host.NAS	2019-01-05 16:49:16.342	error	Caught by controller[6]: at Manager.Emitter.emit (/volume1/homes/admin/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20)
        host.NAS	2019-01-05 16:49:16.342	error	Caught by controller[6]: at Manager. <anonymous>(/volume1/homes/admin/opt/iobroker/node_modules/component-bind/index.js:21:15)
        host.NAS	2019-01-05 16:49:16.342	error	Caught by controller[6]: at Socket.onpacket (/volume1/homes/admin/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:244:12)
        host.NAS	2019-01-05 16:49:16.342	error	Caught by controller[6]: at Socket.onack (/volume1/homes/admin/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:319:9)
        host.NAS	2019-01-05 16:49:16.342	error	Caught by controller[6]: at Socket.adapter.objects.getObjectList (/volume1/homes/admin/opt/iobroker/node_modules/iobroker.admin/main.js:337:35)
        host.NAS	2019-01-05 16:49:16.342	error	Caught by controller[6]: at getData (/volume1/homes/admin/opt/iobroker/node_modules/iobroker.admin/main.js:283:39)
        host.NAS	2019-01-05 16:49:16.341	error	Caught by controller[6]: at new Web (/volume1/homes/admin/opt/iobroker/node_modules/iobroker.admin/lib/web.js:457:7)
        host.NAS	2019-01-05 16:49:16.341	error	Caught by controller[6]: at __construct (/volume1/homes/admin/opt/iobroker/node_modules/iobroker.admin/lib/web.js:426:32)
        host.NAS	2019-01-05 16:49:16.341	error	Caught by controller[6]: at Object.createServer (/volume1/homes/admin/opt/iobroker/node_modules/iobroker.js-controller/lib/letsencrypt.js:74:21)
        host.NAS	2019-01-05 16:49:16.341	error	Caught by controller[6]: at Server.listen (net.js:1391:7)
        host.NAS	2019-01-05 16:49:16.341	error	Caught by controller[6]: at listenInCluster (net.js:1303:12)
        host.NAS	2019-01-05 16:49:16.341	error	Caught by controller[6]: at Server.setupListenHandle [as _listen2] (net.js:1255:14)
        host.NAS	2019-01-05 16:49:16.341	error	Caught by controller[6]: { Error: listen EADDRINUSE: address already in use :::80
        host.NAS	2019-01-05 16:49:16.341	error	Caught by controller[4]: Please update to Let's Encrypt v2 (ACME draft 12)
        host.NAS	2019-01-05 16:49:16.341	error	Caught by controller[4]: Let's Encrypt v1 is deprecated.
        host.NAS	2019-01-05 16:49:16.341	error	Caught by controller[3]: === WARNING ===
        host.NAS	2019-01-05 16:49:16.341	error	Caught by controller[1]: Detected Let's Encrypt v01 URL (deprecated). Changing version to v01.</anonymous></anonymous> 
        

        Heißt das gibt es schon jemand der auf Port 80 hört. Ich hab also einfach mal alle adapter gepaused, dennoch das selbe Problem. Kann das irgendwas ein Service meiner Synology sein?

        Via netstat -n -a -p TCP wurde mir gezeigt das schon jemand auf Port 80 hört.

        ....
        tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN
        ....
        
        

        Das hier hat auch nicht geholfen. http://www.iobroker.net/docu/?page_id=3074&lang=de

        Das hier auch nicht. https://github.com/ioBroker/ioBroker.js … issues/199

        Wie bekomm ich denn jetzt raus welcher Service dort rein funkt?

        1 Reply Last reply Reply Quote 0
        • apollon77
          apollon77 last edited by

          Wenn Du auch auf der Synology LE nutzt dan wird ggf die Synology Port 80 schon belegen . Korrekt.

          1 Reply Last reply Reply Quote 0
          • R
            rollerfreak2 last edited by

            Eine Idee wie ich das raus bekomme bzw. eine mögliche Lösung?

            1 Reply Last reply Reply Quote 0
            • S
              sTeaLth last edited by

              Ich bin auch ganz neu bei ioBroker und muss gleich auch mal ein paar Fragen los werden, aber bevor ich damit loslege, werde ich hier mal versuchen zu helfen.

              Let's Encrypt unterstützt die verifizierung via http oder dns txt challange. Da du wahrscheinlich keinen eigenen DNS Server für deine Domänen betreibst, bei dem du alle 90 Tage die TXT Records für das verify erneuerst, brauchst du zwingend Port 80 von extern erreichbar.

              Weil du diesen ja schon auf deiner Synology nutzt, wirst du da nicht weiterkommen.

              Der Let's Encrypt Agent erzeugt dafür auf dem Webserver ein Verzeichnis ".well-known/acme-challenge/" unter welchem er ein für den challenge eine Datei ablegt. Diese muss von extern abgefragt werden.

              Wenn du auf beiden weiterhin Let's Encrypt nutzen willst, könnte man folgendes probieren:

              Das "acme-challenge" Verzeichnis von deine DS irgendwie in deine IOBroker Instanz mappen, so dass der Let's Encrypt Agent die Datei auf deiner Synology ablegt, die wiederum von extern abgefragt wird.

              Vielleicht hat ja sonst noch jemand eine Idee.

              1 Reply Last reply Reply Quote 0
              • RK62
                RK62 last edited by

                Über einen Synology-Task kopiere ich täglich die Lets Encrypt Zertifikate in das iobroker Datenverzeichnis. Bei den Zertifikaten kann man an Stelle des Zertifikates dann auch einen Link auf die kopierten Dateien angeben.

                Dabei muss sich dann der iobroker gar nur nicht mehr um Lets Encrypt kümmern

                Gruß, Ralf

                Gesendet von iPad mit Tapatalk

                1 Reply Last reply Reply Quote 0
                • R
                  rollerfreak2 last edited by

                  Super das probiere ich dann gleich aus. Das heißt den Hacken bei "Benutze diese Instanz für automatische Updates" kann ich dann einfach weglassen. Wo genau liegen die Zertifikate auf der Synology?

                  1 Reply Last reply Reply Quote 0
                  • R
                    rollerfreak2 last edited by

                    Wollt es jetzt mal ausprobieren finde aber das LE Zertifikat auf der NAS Station nicht.

                    Weder hier /var/lib/letsencrypt/.well-known/acme-challenge noch hier /root/letsencrypt/var/lib/acme-challenge ist was drin.

                    In der Synology ist das LE Zertifikat aber hinterlegt.
                    17182_cert.png
                    Der copy task sieht so aus:

                    cp -R /var/lib/letsencrypt/.well-known/acme-challenge/ /volume1/homes/admin/opt/iobroker/iobroker-data/letsencrypt/
                    
                    

                    Kann mir jemand helfen?

                    1 Reply Last reply Reply Quote 0
                    • RK62
                      RK62 last edited by

                      Hier mein Skript:

                      # Regelmässiges Kopieren der Let's Encrypt Zertifikate für iobroker
                      # Starten mit:
                      # sudo /volume1/docker/prod/script/copy-cert.sh
                      
                      # 09.04.2018 R.Krüger --- Erstellung
                      
                      targetPATH='/volume1/docker/prod/iobroker/esk-cert'
                      
                      cp /usr/syno/etc/certificate/system/default/cert.pem    $targetPATH
                      cp /usr/syno/etc/certificate/system/default/privkey.pem $targetPATH
                      
                      # Fertig!
                      touch /volume1/docker/prod/script/copy-cert.log
                      
                      

                      Gruß Ralf

                      1 Reply Last reply Reply Quote 0
                      • R
                        rollerfreak2 last edited by

                        Hab das mal bei mir angepasst aber es will einfach nicht laufen. Settings in iobroker für LE sind folgende:
                        17182_le.png
                        Im NAS hab ich ein täglichen Aufgabenplan mit folgendem script:

                        targetPATH='/volume1/homes/admin/opt/iobroker/iobroker-data/letsencrypt'
                        cp /usr/syno/etc/certificate/system/default/cert.pem $targetPATH
                        cp /usr/syno/etc/certificate/system/default/privkey.pem $targetPATH
                        
                        

                        Im target folder liegen die beiden Files dann auch da:
                        17182_files.png
                        In der web.0 Instanz hab ich LE an aber das automatische update aus.

                        17182_web.0.png
                        Wenn ich nun via https://domain.de:8082 verbinde kommt im browser weiterhin nicht sichere Verbindung.

                        In den logs steht dann:

                        admin.0	2019-01-06 16:35:07.199	error	No letsencrypt certificates found in "/volume1/homes/admin/opt/iobroker/iobroker-data/letsencrypt"
                        
                        

                        Kein Ahnung was ich falsch mache…

                        1 Reply Last reply Reply Quote 0
                        • RK62
                          RK62 last edited by

                          Wenn Du die Zertifikate der Synology verwendest, musst Du das im ioBroker ohne Let's Encrypt machen.

                          1. Zertifikate regelmäßig kopieren (hast Du ja schon erledigt)

                          2. Let's Encrypt im ioBroker deaktivieren

                          ! 6528_hc0.png
                          3. In den ioBroker-Einstellungen Referenzen auf die kopierten Zertifikate setzen

                          ! filename="HC1.png" index="1">~~
                          4. In der Instanz admin.0 die Zertifikate einsetzen

                          ! 6528_hc2.png

                          Allerdings funktionieren die Zertifikate nur auf dem externen Namen Deiner Synology, als beispielsweise xxx.myds.me. Entweder muss Du die Adresse Deiner Synology auf dem PC in deine C:\Windows\System32\drivers\etc\hosts eintragen ( <ip der/synology="">xxx.myds.me) oder in der Synology Zertifikate für Subdomains anlegen und diese dann unter Reverse Proxy eintragen.

                          Gruß, Ralf</ip>

                          1 Reply Last reply Reply Quote 0
                          • R
                            rollerfreak2 last edited by

                            Super danke dir das hat geklappt. Ich hab nach dem Einstellen einmal den iobroker stoppen und wieder starten müssen und jetzt werden die Zertifikate gefunden. Besten Dank!

                            > oder in der Synology Zertifikate für Subdomains anlegen und diese dann unter Reverse Proxy eintragen.
                            Hast du dafür eine Anleitung? Ich wollt gern von außen ohne Ports hantieren, das heißt https://domain.de/foo und https://domain.de/bar eintippen und die sollen dann intern auf den Richtigen Port weitergeleitet werden. Soweit ich weiß sollte nginx dafür brauchbar sein. Oder geht das schon mit Synology Boardmitteln?

                            1 Reply Last reply Reply Quote 0
                            • RK62
                              RK62 last edited by

                              Geht mit Bordmitteln, aber Vorsicht: Damit ist der ioBroker von außen erreichbar und davon wird von den Betreibern aus Sicherheitsgründen dringend abgeraten. Die angebotene Cloud-Lösung ist hier sicherer.

                              Es geht nicht mit Ergänzungen am Domainnamen, sondern nur mit Subdomains.

                              Wenn Deine Domaine xxx.myds.me lautet, dann sind Subdomains S1.xxx.myds.me / S2.xxx.myds.me / iobroker.xxx.myds.me, etc.

                              Für jeden Port (vis, admin oder andere Docker-Container) brauchst Du eine eigene Subdomain.

                              1. Du brauchst für jede Subdomain ein Zertifikat, die können aber in einem Rutsch angefordert werden.

                              Wahrscheinlich musst Du dafür Dein vorhandenes Zertifikat löschen oder überschreiben:

                              • Systemsteuerung / Sicherheit / Zertifikat

                              • Hinzufügen / Zertifikat von Let's Encrypt abrufen

                              • Jetzt wird es spannend

                              – Domainname: xxx.myds.me

                              -- eMail: Deine eMailadresse

                              -- Betreff alternativer Name: iobroker.xxx.myds.me;S1.xxx.myds.me;S2.xxx.myds.me (Mit Semikolon trennen!)

                              Wie gewohnt erhälst Du jetzt ein Zertifikat welches jetzt allerdings mit allen angegebenen Adresse funktioniert.

                              2. Reverse Proxy einrichten

                              • Systemsteuerung / Anwendungsportal / Reverse Proxy

                              • Beschreibung: 🙂

                              • QUELLE

                              -- Protokoll: HTTPS

                              -- Hostname: iobroker.xxx.myds.me (Subdomain)

                              -- Port: 443

                              -- HSTS aktivieren

                              -- HTTP/2 aktivieren

                              • ZIEL

                              -- Protokoll: HTTPS

                              -- Hostname: localhost

                              -- Port: 8081 (Port auf der Synology)

                              3. Firewall / Router

                              Der Router muss alle Anfragen auf Port 443 an die Synology weiterleiten.

                              Ebenso 80 für Let's Encrypt aber der sollte ja schon offen sein.

                              Gruß, Ralf

                              1 Reply Last reply Reply Quote 0
                              • R
                                rollerfreak2 last edited by

                                Danke für die ausführliche Erklärung. Soweit hab ich alles konfiguriert, meine subdomains werden aber nicht aufgelöst. Ich bekomme im chrome immer DNS_PROBE_FINISHED_NXDOMAIN.

                                Ich vermute ich muss meine subdomains bei meinem dyndns Betreiber bekannt machen?

                                Port 443 und 80 werden an das NAS umgeleitet.

                                1 Reply Last reply Reply Quote 0
                                • R
                                  rollerfreak2 last edited by

                                  Hab es gefunden, wildcard musste im dyndns account eingestellt werden.

                                  Danke und Grüße

                                  1 Reply Last reply Reply Quote 0
                                  • RK62
                                    RK62 last edited by

                                    Bestens, dann füge doch ein [gelöst] an den Anfang des Eintrages zu.

                                    Gruß Ralf

                                    1 Reply Last reply Reply Quote 0
                                    • R
                                      rollerfreak2 last edited by

                                      Ein kleines bisschen zu früh gefreut. Die Reverse proxy Einstellungen sind jetzt aktiv und die subdomain kann auch aufgelöst werden. Jedoch sind die subdomains jetzt nicht mehr als sicher erkannt. Ich hab das Zertifikat ersetzt und bei Betreff alternativer Name alles subdomains mit ; getrennt aufgeführt. 😞

                                      Das kopieren der Zertifikate im NAS hab ich gleich ausgeschaltet und adressiere die direkt von /usr/syno/etc/certificate/system/default/ da ich iobroker nicht im docker laufen habe.

                                      1 Reply Last reply Reply Quote 0
                                      • RK62
                                        RK62 last edited by

                                        Synology neu gestartet?

                                        Hat der Browser schon das neue Zertifikat übernommen?

                                        1 Reply Last reply Reply Quote 0
                                        • R
                                          rollerfreak2 last edited by

                                          Synology hab ich neu gestartet. Browserdaten hab ich jetzt mal gelöscht. Damit hat er sich das neue Zertifikat gezogen (seh ich am Ausstellungsdatum) aber die Subdomains werden weiterhin als nicht sicher erkannt.
                                          17182_cert.png
                                          Ich hab jeweils zwei weiterleitungen gemacht von http->https und https->https jeweils für die zwei Subdomains.

                                          1 Reply Last reply Reply Quote 0
                                          • R
                                            rollerfreak2 last edited by

                                            Wenn ich die Subdomains mit Port eingebe dann werden die als sicher erkannt (Zertifikat wird gefunden). Dann macht der Reverse Proxy ja aber keinen Sinn!?

                                            https://vis.domain.de:8082 –> sicher

                                            vis.domain.de:8082 --> sicher (wegen http auf https reverse proxy)

                                            https://vis.domain.de --> unsicher

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            514
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            22
                                            4349
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo