Let's Encrypt Zertifikat für NAS mit eigener Domain?

  • Hallo zusammen,


    es gibt ja die Möglichkeit sich ein Let's Encrypt Zertifikat für eigene Domains über das QNAP Webinterface zu beantragen. Ich möchte dies gerne für meine Domain nas.occucloud.de tun.


    Es gibt hier eine kleine Besonderheit: Mein Provider (Unitymedia/Vodafone) gibt mir keine public IPv4 Adresse. Daher muss ich mit einer IPv6 Adresse leben, wo ich allerdings das NAS direkt mit ansprechen kann (ich habe das NAS in der Fritz!Box als "Exposed Host" konfiguriert). Nun brauche ich trotzdem IPv4, weil z.B. das O2 Mobilfunknetz oder das Netzwerk meines Arbeitgebers kein IPv6 unterstützt. Ich habe mir daher eine Lösung gebastelt: Man nehme einen VServer, gebe diesem eine weitere IPv4 Adresse und tunnele alles zur IPv6 Adresse des QNAP NAS. Das geht mit 6tunnel. Mit den folgenden Bash-Befehlen wird die IPv4 Adresse 45.91.101.26 auf die IPv6 Adresse 2a02:908:2220:7200:265e:beff:fe31:9bf9 gemappt und zwar für die Ports 80, 8080, 8081, 443, 22 [zu 2222] und 5001:

    Code
    6tunnel -l 45.91.101.26 80   2a02:908:2220:7200:265e:beff:fe31:9bf9 80
    6tunnel -l 45.91.101.26 8080 2a02:908:2220:7200:265e:beff:fe31:9bf9 8080
    6tunnel -l 45.91.101.26 8081 2a02:908:2220:7200:265e:beff:fe31:9bf9 8081
    6tunnel -l 45.91.101.26 443  2a02:908:2220:7200:265e:beff:fe31:9bf9 443
    6tunnel -l 45.91.101.26 2222 2a02:908:2220:7200:265e:beff:fe31:9bf9 22
    6tunnel -l 45.91.101.26 5001 2a02:908:2220:7200:265e:beff:fe31:9bf9 5001

    Nun nur noch die IPv4 Adresse vom Server als DNS Eintrag hinterlegen. Das Ganze funktioniert auch entsprechend. Ich komme von nas.occucloud.de auf mein NAS über HTTPS (Port 443). Nur halt nur mit einem Zertifikat für occunas.myqnapcloud.com, was so natürlich nicht ok ist. Während mein Firefox mir die Verbindung also verweigert (weil unsicher), kann ich z.B. mit den Android-Apps Qfile und Qphoto auf das NAS zugreifen, weil denen das kaputte Zertifikat anscheinend völlig egal ist (Schande auf QNAP!)


    Ob diese Trickserei für die folgende Problematik überhaupt relevant ist, kann ich so nicht sagen. Aber ich wollte diese getrickste Config trotzdem erwähnen, falls das doch einen Einfluss hat. Über den AAAA-Record ist übrigens zusätzlich die IPv6 Adresse des NAS hinterlegt, sodass ein direkter Zugriff möglich wäre, sobald sich ein Client dafür entscheidet IPv6 zu benutzen. IPv4 ist also eine Art Fallback.


    Nun möchte ich mir ein Zertifikat für nas.occucloud.de holen (vgl. Screenshots). Das Ganze schlägt fehl mit:

    Code
    Es wurde keine Domainvalidierungsherausforderungen vom ACME-Server empfangen. Stellen Sie sicher, dass sowohl Ihr Router als auch das QNAP-Geräte ankommenden Verkehr an den Ports 80 und 443 untersützen, da dies eine Voraussetzung von Let's Encrypt ist.

    Ich muss dazu sagen: Das Ganze hatte sogar schon mal geklappt! Ich hatte mit dieser Methode schon mal ein Zertifikat bekommen. Nur warum zum Teufel geht das jetzt nicht mehr? Hat sich was geändert? Was läuft da falsch?


    Danke für eure Hilfe.


    Mit freundlichen Grüßen

    Markus


    NAS: TS-231P

    Firmware-Version: 4.4.2.1302

    Router: FRITZ!Box 6490 Cable (FRITZ!OS: 07.10)

  • Mein Provider (Unitymedia/Vodafone) gibt mir keine public IPv4 Adresse.

    Da bin ich auch, habe aber einen Dual Stack inkl. IPv4.


    Schon mal freundlich nach gefragt?


    NAS als Exposed Host, das ist schon mutig, nach dem was im letzten Jahr so los war.


    So würde ich das zukünftige VPN GW bei meinen Eltern betreibe, aber erst dahinter kommt dann das NAS.

  • Ich werde mal bzgl. IPv4 Stack fragen. Allerdings wurde einem Freund von mir hier in Paderborn auf Nachfrage schon mal mitgeteilt, dass dies nicht möglich sei. Genau deswegen ist er jetzt bei einem anderen Anbieter.


    Ja, Exposed Host war fürs Testen erst mal das Einfachste. Ich wollte, dass es nicht daran hängt. Ich habe das jetzt mal wieder zurückgestellt und nur die notwendigen Ports freigegeben. Insbesondere habe ich mal Port 22 zu gemacht, da es hier im Minutentakt SSH Anmeldeversuche von was weiß ich wo gab. VPN ist bestimmt die beste Lösung.


    Bei meinem Problem hilft mir das leider allerdings wenig: Immer noch kein Zertifikat!

  • Hallo zusammen,


    ich habe nun nach eurem Vorschlag meinen Internetanbieter Unitymedia/Vodafone überzeugt mir eine IPv4 Adresse zu geben. Die Ports 80, 443, 5001 sind in der FritzBox geforwarded. Die Domain nas.occucloud.de ist nun entsprechend konfiguriert.


    Ich kann immer noch kein Zertifikat erzeugen.


    Ideen?


    Viele Grüße

    openminded

  • Die Domain nas.occucloud.de ist nun entsprechend konfiguriert.

    Ist das nun eine Domain oder ein Rechner/Host? Sieht für mich eher nach einem Rechner aus.

    Ich kann immer noch kein Zertifikat erzeugen.

    Und ist Dein Webserver auf diesem Rechner aus dem Internet auch erreichbar, damit Du ein Zertifikat unter diesem Namen von Let's Encrypt auch erhalten kannst? Der interne Name spielt dafür keine Rolle.

  • Warum Host? Occucloud.de ist eine Domain, die ich bei INWX registriert habe. nas.occucloud.de eine entsprechende Subdomain. Du kannst ja schauen: Du kommst auf https://nas.occucloud.de drauf. Nur dass du die entsprechende Sicherheitswarnung erhältst, dass das Zertifikat nicht für nas.occucloud.de ausgestellt ist. Du kannst auch versuchen dich mit telnet auf Port 80 zu verbinden und es antwortet dir ein HTTP Server:

    Die Domain ist korrekt konfiguriert und man kommt auch auf Port 80 und Port 443. Genau so, wie es für die Zertifikatsbeschaffung sein müsste.


    Funktioniert aber nicht!

  • Hallo,


    ich hatte hier auch sehr lang Probleme. Dabei bin ich auch so vorgegangen wie du in deinem ersten Post beschreibst. Hatte sogar auch das selbe Ergebnis, dass es einmal funktioniert hat aber aus mir unbekannten Gründen dann plötzlich nicht mehr.


    Am Ende hab ich mir das Zertifikat per Shell selber erstellt und dann das Ergebnis manuell in die "NAS-Sicherheit" eingetragen.


    Hier mein Shell-Script das dir evtl. weiterhilft.


    certbot certonly -n --agree-tos --email <deineMail@domail.de> --standalone --rsa-key-size 4096 --preferred-challenges http -d nas.occucloud.de -d <ggf. weitere subdomain>


    Diese Dateien werden u.a. erstellt und können dann in der "Sicherheit" zugeordnet werden:


    Zertifikat: cert.pem

    Privater Schlüssel: privkey.pem

    Zwischenzertifikat: chain.pem



    Ich muss dazu sagen, dass ich das auf einer Ubuntu-VM mache. Die VM muss dann natürlich auch genauso aus dem Internet erreichbar sein. Der Vorteil dieser Methode ist einfach, dass man wenigstens ein log bekommt mit einer Fehlermeldung.

  • Warum Host?

    Weil Let's Encrypt einen (physischen oder virtuellen) Rechner mit Webservice benötigt, nicht eine Domain. Eine Domain umfasst eine Gruppe an Rechnern und möglicherweise auch Subdomains. Ein FQDN bezieht sich somit auf einen Rechner in einer Domain. Dieser Rechner darf auch mehrere FQDN haben. So wie Du antwortest, scheinst Du Domain mit FQDN zu verwechseln oder als Synonyme anzusehen, obwohl es sich um verschiedene Dinge handelt mit verschiedenen Voraussetzungen. Ein FQDN muß Mitgleid einer Domain sein, ist selbst aber keine Domain. Beispielsweise liefert auch eine whois-Abfrage, dass nas.occucloud.de keine Domain sei, was für Let's Encrypt auch nicht benötigt wird.

    Du kommst auf https://nas.occucloud.de drauf. Nur dass du die entsprechende Sicherheitswarnung erhältst, dass das Zertifikat nicht für nas.occucloud.de ausgestellt ist.

    Und dann sagt Dir auch diese Sicherheitswarnung, was bei Dir falsch bzw. unzureichend ist. Das Zertifikat ist gültig, aber für einen anderen FQDN in einer anderen Domain, der Domain myqnapcloud.com, die meines Wissens in Taiwan gehostet wird, im Gegensatz zur Domain occucloud.de. Bei ersterer sind Kontaktinfos enthalten, bei letzterer nicht. Geografische oder Adressangaben sind in beiden nicht enthalten. Eine DNS-Abfrage liefert Antworten, welche DNS-Server Abfragen für myqnapcloud.com und welche für occucloud.de beantworten. Da hat Let's Encrypt ja ebenfalls Anforderungen über Beziehungen bzw. Attribute, um ein Zertifikat auszustellen. Selbst wenn Du QNAP davon überzeugst, für nas.occucloud.de einen DNS-Eintrag in den DNS-Server von myqnapcloud.com einzutragen, wäre dieser Eintrag nicht autoritativ und damit für Let's Encrypt irrelevant.


    Du musst Dich vermutlich an INWX wenden. Denn ich habe keine Antwort erhalten, welcher DNS-Server für den FDQN nas.occucloud.de zuständig und somit autoritativ wäre! Hast Du eigentlich eine feste IP-Adresse oder eine dynamische? Wenn Du eine dynamische hast, unterstützt INWX für occucloud.de auch DynDNS? So etwas bräuchtest Du für ein Let's Encrypt-Zertifikat für nas.occucloud.de


    Mein Kenntnisstand mag veraltet sein. Als ich zuletzt die Anforderungen an die automatische Zertifikatserteilung über Let's Encrypt nachschlug, war es nicht möglich, mehrere Namen mit einem Zertifikat zu verknüpfen. Wenn Du also ein Zertifikat willst, dass bestätigt, dass occunas.myqnapcloud.com und nas.occucloud.de der gleiche (ggfs. virtuelle) Rechner ist, müssen beide Namen im gleichen Zertifikat hinterlegt sein. Ein selbsterstelltes Zertifikat hilft Dir dabei solange nicht, solange keine autoritative dritte Stelle dies bestätigt. Eine andere Lösung ist, wenn Dein Webserver mehrere Zertifikate bereit hält, und je nach abgefragtem FQDN das eine oder das andere Zertifikat mit dem jeweils einzigen FQDN antwortet.

    Die Domain ist korrekt konfiguriert

    Du meinst vermutlich, dass der DNS-Eintrag für den FDQN nas.occucloud.de korrekt konfiguriert sei. Aber wenn Du damit meinst, dass die Anforderungen sowohl für Webservice als auch Let's Encrypt damit abgedeckt seien, sieht das für mich eben nicht danach aus. Da muss noch etwas ergänzt werden. Was dafür wo ergänzt werden muss, hängt davon ab, ob Du eine feste oder eine dynamische IP-Adresse hast.

    Der Vorteil dieser Methode ist einfach, dass man wenigstens ein log bekommt mit einer Fehlermeldung.

    Und dass man mehrere FQDN in einem Zertifikat unterbringt, falls gewünscht. z.B. falls der Webserver nicht unterstützt für unterschiedliche virtuelle Domains auch zugehörige verschiedene Zertifikate auszuliefern.

    Einmal editiert, zuletzt von chef1 () aus folgendem Grund: Anmerkung zu Zertifikaten mit mehreren FQDN ergänzt.

  • Mod: Zitat ohne Quellenangabe ... korrigiert! :handbuch::arrow: Die Zitat Funktion des Forums richtig nutzen

    Am Ende hab ich mir das Zertifikat per Shell selber erstellt und dann das Ergebnis manuell in die "NAS-Sicherheit" eingetragen.


    Hier mein Shell-Script das dir evtl. weiterhilft.

    Danke für deine Antwort. Ich weiß wie man das mit certbot oder acme.sh macht, da ich selbst sogar mehrere Server mit noch mehr Domains betreibe. Das Problem ist nur: Ein Let's Encrypt Zertifikat läuft nur 3 Monate und eigentlich sollte das automatisch erneuert werden. So habe ich alle 3 Monate diese manuelle Arbeit vor mir. Aber gut, dass ich nicht der Einzige mit dem Problem bin!

    Mod: Zitat ohne Quellenangabe ... korrigiert! :handbuch::arrow: Die Zitat Funktion des Forums richtig nutzen

    Weil Let's Encrypt einen (physischen oder virtuellen) Rechner mit Webservice benötigt, nicht eine Domain. Eine Domain umfasst eine Gruppe an Rechnern und möglicherweise auch Subdomains. Ein FQDN bezieht sich somit auf einen Rechner in einer Domain.

    occucloud.de ist eine Domain, nas.occucloud.de ist eine Subdomain, die bei INWX entsprechend hinterlegt ist. nas.occucloud.de ist auch ein FQDN. Ich habe hier glaube ich nichts verwechselt. Fakt ist: So wie das konfiguriert ist, muss das eigentlich klappen!

    Mod: Zitat ohne Quellenangabe ... korrigiert! :handbuch::arrow: Die Zitat Funktion des Forums richtig nutzen

    Und dann sagt Dir auch diese Sicherheitswarnung, was bei Dir falsch bzw. unzureichend ist. Das Zertifikat ist gültig, aber für einen anderen FQDN in einer anderen Domain, der Domain myqnapcloud.com, die meines Wissens in Taiwan gehostet wird, im Gegensatz zur Domain occucloud.de. Bei ersterer sind Kontaktinfos enthalten, bei letzterer nicht. Geografische oder Adressangaben sind in beiden nicht enthalten. Eine DNS-Abfrage liefert Antworten, welche DNS-Server Abfragen für myqnapcloud.com und welche für occucloud.de beantworten. Da hat Let's Encrypt ja ebenfalls Anforderungen über Beziehungen bzw. Attribute, um ein Zertifikat auszustellen. Selbst wenn Du QNAP davon überzeugst, für nas.occucloud.de einen DNS-Eintrag in den DNS-Server von myqnapcloud.com einzutragen, wäre dieser Eintrag nicht autoritativ und damit für Let's Encrypt irrelevant.

    Der Bezug eines Let's Encrypt Zertifikats für occunas.myqnapcloud.com hat auch funktioniert. Aber per diesem MyQNAP-Cloud-Dialog. Daher gibt es das Zertifikat, das dort fälschlicherweise ausgeliefert wird. Die Generierung vom Zertifikat für nas.occucloud.de hat nicht funktioniert und daher ist hier das alte/falsche Zertifikat.

    Mod: Zitat ohne Quellenangabe ... korrigiert! :handbuch::arrow: Die Zitat Funktion des Forums richtig nutzen

    Du musst Dich vermutlich an INWX wenden. Denn ich habe keine Antwort erhalten, welcher DNS-Server für den FDQN nas.occucloud.de zuständig und somit autoritativ wäre! Hast Du eigentlich eine feste IP-Adresse oder eine dynamische? Wenn Du eine dynamische hast, unterstützt INWX für occucloud.de auch DynDNS? So etwas bräuchtest Du für ein Let's Encrypt-Zertifikat für nas.occucloud.de

    dig nas.occucloud.de funktioniert doch. Der Nameserver liefert das A-Record und auch AAAA-Record zurück. Mehr brauche ich doch nicht.


    Ich habe eine feste IP-Adresse. Zuvor nur eine IPv6-Adresse, wodurch dieses Ganze hier erst entstanden ist. Denn ich hatte ein IPv4 -> IPv6 Tunnel auf meinem VServer, was ich bei der MyQNAPcloud-Adresse (occunas.myqnapcloud.com) so nicht hinterlegt werden konnte. Daher brauchte ich meine eigene Domain nas.occucloud.de.


    Inzwischen habe ich von Unitymedia/Vodafone eine feste IPv4 Adresse bekommen. Das ging bis vor einiger Zeit noch gar nicht! Daher geht jetzt occunas.myqnapcloud.com entsprechend wie gewünscht. Eigentlich brauche ich das Zertifikat für nas.occucloud.de also nicht mehr unbedingt. Es funktioniert ja alles wie gewünscht. Was nichts daran ändert, dass es trotzdem funktionieren müsste und wahrscheinlich ein Bug in der Firmware vorliegt!


    By the way: INWX hätte auch DynDNS untersützt.

    Mod: Zitat ohne Quellenangabe ... korrigiert! :handbuch::arrow: Die Zitat Funktion des Forums richtig nutzen

    Mein Kenntnisstand mag veraltet sein. Als ich zuletzt die Anforderungen an die automatische Zertifikatserteilung über Let's Encrypt nachschlug, war es nicht möglich, mehrere Namen mit einem Zertifikat zu verknüpfen. Wenn Du also ein Zertifikat willst, dass bestätigt, dass occunas.myqnapcloud.com und nas.occucloud.de der gleiche (ggfs. virtuelle) Rechner ist, müssen beide Namen im gleichen Zertifikat hinterlegt sein. Ein selbsterstelltes Zertifikat hilft Dir dabei solange nicht, solange keine autoritative dritte Stelle dies bestätigt. Eine andere Lösung ist, wenn Dein Webserver mehrere Zertifikate bereit hält, und je nach abgefragtem FQDN das eine oder das andere Zertifikat mit dem jeweils einzigen FQDN antwortet.

    Ja, dein Wissen ist veraltet. Mehrere Domains sind möglich und ich habe das auch schon getan. Das QNAP Benutzerinterface gibt dazu auch die Möglichkeit. Der Rest ist klar. Sogar Wildcard-Zertifikate sind inzwischen möglich. Mir würde aber auch eine Domain schon reichen, aber es funktioniert ja nicht mal das!

    Mod: Zitat ohne Quellenangabe ... korrigiert! :handbuch::arrow: Die Zitat Funktion des Forums richtig nutzen

    Du meinst vermutlich, dass der DNS-Eintrag für den FDQN nas.occucloud.de korrekt konfiguriert sei. Aber wenn Du damit meinst, dass die Anforderungen sowohl für Webservice als auch Let's Encrypt damit abgedeckt seien, sieht das für mich eben nicht danach aus. Da muss noch etwas ergänzt werden. Was dafür wo ergänzt werden muss, hängt davon ab, ob Du eine feste oder eine dynamische IP-Adresse hast

    Inzwischen feste IPv4 und IPv6 Adresse. Ich konfiguriere meine VServer mit apache2 genau so und erhalte per certbot oder acme.sh meine Zertifikate. Ich kenne mich also schon aus, wie so was konfiguriert werden muss. Ich wüsste nicht, was hier noch fehlen sollte. Was sollte denn fehlen?


    Fazit: Das ist ein Bug in der QNAP Firmware!

  • Hallo,

    darf ich mich mal mit einer Frage mit einbringen?

    Kann mir jemand vielleicht sagen, wo ich auf der QNAP

    die von Let's Encrypt erstellten Dateien finde?


    Gruß

    Stefan