[Howto] Eigenes Zertifikat mit "qnap-letsencrypt"

  • hallo,
    ist die weiterleitung vom port 80 auf dem router zum NAS eingerichtet ?
    das verzeichniss ist nach der beendigung vom script leer. das ist ok!


    mfg kasimodo

  • Ja, ist eingerichtet. Ich kann über die externe URL z.B. das leere Verzeichnis einsehen und beim Aufruf der acme-challenge bekomme ich auch einen 404 Fehler vom Webserver (weil das Verzeichnis ja leer ist).


    Viele Grüße.

  • hi,
    leite mal die Bildschirmausgaben von deinem script in einen File und poste diesen hier mal oder hänge diesen als datei hier an!

  • Hi,


    ich konnte die Ursache finden: Mein Router hat HTTP-Anfragen von internen Geräten (z.B. NAS) nicht korrekt weitergeleitet, sodass die Überprüfung der acme-challenge durch das NAS selbst fehlschlug, obwohl Anfragen von außen funktionierten (das konnte ich über ein VPN überprüfen). Da dies wohl nicht so leicht zu umgehen ist, habe ich einfach die Überprüfung der challenge-Datei im acme-tiny.py Skript auskommentiert. Damit laufen die Skripte jetzt durch und das Zertifikat wird richtig installiert.


    Im SSLLabs-Test zeigt er übrigens an, dass das Zertifikat 90 Tage gültig ist – man müsste also nicht alle 30 Tage erneuern?


    Viele Grüße.

  • ... habe ich einfach die Überprüfung der challenge-Datei im acme-tiny.py Skript auskommentiert...

    Welche Zeilen aus der acme-tiny.py hast Du genau auskommentiert um das Problem zu lösen. Ich habe nämlich das gleiche Problem.

  • Welche Zeilen aus der acme-tiny.py hast Du genau auskommentiert um das Problem zu lösen. Ich habe nämlich das gleiche Problem.

    Ich hab' die modifizierte Datei gerade nicht zur Hand, aber wenn ich in den Originalquellcode schaue, bin ich ziemlich sicher, dass es diese Zeilen waren:

    Python: acme-tiny/acme_tiny.py
    # check that the file is in place
            wellknown_url = "http://{0}/.well-known/acme-challenge/{1}".format(domain, token)
            try:
                resp = urlopen(wellknown_url)
                resp_data = resp.read().decode('utf8').strip()
                assert resp_data == keyauthorization
            except (IOError, AssertionError):
                os.remove(wellknown_path)
                raise ValueError("Wrote file to {0}, but couldn't download {1}".format(
                    wellknown_path, wellknown_url))

    Grüße,
    Yaisog

  • Hallo,


    ich habe mir als QNAP Neuling und Linux Nichtswisser einmal die Anleitung hier angesehen und hoffe das ihr mir weiterhelfen könnt.


    Ich habe mir die Anleitung einmal durchgelesen und wie schon erwähnt habe ich nicht den blassesten Schimmer was da im Detail passiert bzw sind für mich noch ein paar offene Fragen.


    Ich versuche es einmal so zu erklären wie ich es Verstande habe und wenn ich daneben liege , wäre es sehr nett wenn ihr mich korrigiert und helfen könntet.


    1. An der FritzBox richte ich eine Portweiterleitung für den Webserver (http Server) ( Port 80) an die Qnap ein. Frage( wenn vielleicht auch eine doofe): die Portweiterleitung sollte ich wahrscheinlich schnellstmöglich nach erfolgreicher Durchführung des ganzen wieder raus nehmen?
    2. Die Python App aus dem App Store von Qnap herunterladen. ( ist vorhanden, das habe ich schon nachgesehen).
    3. Die App Entware-ng von dem Download Link herunterladen und auf der Qnap installieren.
    4. Dann mit Putty mich von meinem Windows 10 PC auf die Qnap verbinden.
    5. Folgenden Code in Putty eingeben ( die Änderungen wegen der Abfrage falls letsencrypt nicht erreichbar natürlich vorher in den richtigen Teilen eintragen):


    Hier wäre es schön wenn nochmal den kpl. Befehlssatz einfügen könnte, mitsamt der Abfrage ob das Zertifikat überhaupt schon vorhanden ist.
    Leider bin ich nicht ganz schlau geworden daraus in welche Zeile ich welche Ergänzung einfügen muss. DAs wäre toll


    [Howto] Eigenes Zertifikat mit "qnap-letsencrypt"
    6. enter drücken
    7. Ab hier verstehe ich es nicht mehr.... Was soll ich genau mit dieser Autorun.sh machen ?
    Ist das die Datei die am Ende des Tages immer bei letsencrypt nachfragt und das Zertifikat erneuert falls es kurz vorm Ablauf ist?
    8. Wenn ich es richtig verstanden habe muss ich dann die erstellte autorun.sh mittels cronjob ( was das pondon zu Windows aufgabenplanung ist ) regelmäßig laufen lassen.


    Das wars... Wäre nett wenn ihr mal schauen könntet ob ich das alles so richtig verstanden habe.


    Vielen Dank

  • Hallo Leute,


    gibt es keinen hier der mir weiterhelfen kann...????
    Wäre nett wenn sich das mal einer anschauen könnte was ich da geschrieben habe.
    Vielen Dank.

  • Hilfe, mein Server ist nicht mehr Erreichbar? Nur noch per SSH? Also selbst nicht mal über die lokale IP...? Was hab ich da falsch gemacht?



    Und, werde bald meine Domain ändern, welche schritte muss ich dann nochmal ausführen? Also um die IP zu ändern bzw die Adresse und auch um das Zertifikat neu zu starten.


    MFG


    Vor allem, habe ich auch die selben fragen wie der Poster vor mir. Was mache ich mit den ganzen Code schnippseln machen muss ...

  • Hallo,
    vergiss erst mal ganz schnell die Beiträge mit den ganzen Codeschnippsel. Die sind für "Spezialfälle" !


    Für die ganze Zertifikatsgeschichte reicht die Anleitung im ersten Beitrag!
    Deinen Webserver / HTTPS und die Virt. Hosts wirst du ja schon eingerichtet haben.
    Das muss erst mal auch ohne letsencrypt laufen!


    mfg gernot

  • Edit:


    geht wieder.


    Habe das auch mit der neuen Anfrage geschafft ... aber was ist mit dem ganzen Autorun.sh zeug und umschreiben der cfg usw usw?

  • Teste mal deine domäne auf:


    https://www.ssllabs.com/ssltest/


    Der Check wird im besten Fall ein Grünes "B" ergeben weil die Webserverkonfiguration nicht optimal ist.
    Im Betrag 10 habe ich etwas dazu geschrieben. Da händische Bearbeitung der Konfiguration nicht dauerhaft erhalten bleibt hab ich den Umweg über die Scripte gemacht. Die passen die Konfiguration bei jedem Neustart oder Firmwareupdate wieder an. Wenn alles richtig gemacht wird, dann erreichst du beim Sicherheitscheck auf https://www.ssllabs.com/ssltest/ ein grünes "A+"


    mfg kasimodo

  • Hallo,


    habe ein Problem, nachdem ich mein Webinterface gehimmelt habe und jetzt zum Glück wieder hin bekommen habe, geht bei mir HTTPS nicht mehr ...? Letsencrypt macht auch nur Probleme und spuckt nur noch error aus ..?


  • Hallo


    ich habe ebenfalls vor mit Letsencrypt meine Zeritfikate erstellen zu lassen. Da ich noch eine alte QNAP-TS110 habe, habe ich an dieser zunächst testweise nach dieser Anleitung installiert. Das ist auch ohne Fehler durchgelaufen. Bis jetzt... Ein Update und ein paar Neustarts werde ich zum Testen noch machen.


    Mir ist aufgefallen, dass Letsencrypt anscheinend den normalen HTTP-Zugang ganz lahm legt. Ich will jedoch lediglich das Zertifikat und selbst entscheiden, ob und wann ich meine HTTP-Ports umleite. Gibt es da eine Einstellungsmöglichkeit, die nichts kaputt macht? Oder gibt es hier auch eine Option wie --cert-only, die bei der Installation angegeben werden kann, bei der die Apache-Einstellungen nicht geändert werden? (falls QNAP überhaupt mit Apache arbeitet - das konnte ich noch nicht herausfinden)


    Der original Letsencrypt-Script sieht ebenfalls vor, die Domain für HSTS bei google einzutragen. Das ist so ein tolles Protokoll, welches mit dem Browser zusammen arbeitet und diesem sagt, dass es die Webseite mydomain.de auch als https gibt. Dann versucht der Browser erst gar keine unverschlüsselte Verbindung. Macht der in dieser Anleitung beschriebene Script das auch?


    Ich bin ebenfalls am überlegen, ob es nicht sinnvoll ist, sich direkt eine VM mit einem Linux Server aufzusetzten, diese die Arbeit erledigen zu lassen und darauf die Websites hosten zu lassen. Dann müsste ich nur mit einem fiesen Shell-Script irgendwie die Zertifikate von der VM auf das QNAP kopieren, damit ich auch mal auf meine Dateien zugreifen kann.


    Meine Idee für das Gesamt-Konzept geht auch in die Richtung: https://qnap.mydomain.de, http://www.mydomain.de, http://mail.mydomain.de


    @kasimodo
    Der Zeitintervall, den Letsencrypt für den Renew vorschlägt, liegt bei 2 mal täglich. Der Grund dafür ist, dass bei einem auftretenden Sicherheitsproblem bei der Letsencrypt CA, diese ihre eigenen Zertifikate widerrufen könnten. Wenn die das machen, ist Dein Zertifikat ungültig. Das ist dann solange ungültig, bis Dein cronjob am Wochenende sich ein Neues gültiges holt. Ich finde 2 mal täglich auch übertrieben (besonders bei privaten Servern), aber einmal täglich tut keinem weh.


    Gruß
    Brokoli

  • Hallo,


    also habe auch wieder alles zum laufen bekommen und so :D Habe nun auch das mit dem tmp renew gemacht, aber dennoch die frage, wie geht das mit der autorun genau? Kann man da sozusagen noch einmal eine Schritt für Schritt anleitung bekommen? Also, wo muss die autorun hin, muss die per cron gestartet werden usw usw..? Also sozusagen von anfang bis ende erklärt wäre ganz cool. Habe noch nie mit Autoruns gearbeitet ... in meinem .qpg is sogar schon eine autorun, muss ich es da einfach hinzufügen oder ...? Anleitung wäre cool ... :)


    MFG

  • Die autorun Geschichte ist nicht zwingend notwendig.
    Nur dann, wenn du die Sicherheit und Konfiguration von deinem Webserver (Https) verbessern möchtest.
    Du findest alles dafür notwendige im hiesigen Thema unter Beitrag 10 Punkt 2! Da steht nichts mit Cron!
    In den Scripten findest du auch die Pfade zu den Dateien. Dies ist schon eine 1 zu 1 Anleitung.


    was ist .qpg????? Ist dies ein verzeichnis oder eine datei? was für eine autorun und mit welchem Inhalt steht da?



    mfg kasimodo

  • Hallo,
    kannst du bitte die Schritte aufschreiben, um alles rückgängig zu machen?
    Ich hab deine Anleitung befolgt, bekomme bei "./renew_certificate.sh" diverse Fehler z.B.

    Code
    ValueError: Wrote file to tmp-webroot/.well-known/acme-challenge/asdf, but couldn't download http://www.nas.meine-domain.de/.well-known/acme-challenge/asd

    und jetzt gehen die auf dem NAS gehosteten Websites nicht mehr

  • hi puseidr,


    so wie deine fehlermeldung aussieht war die weiterleitung von port 80 von deinem router zum qnap nicht ok.
    das der webserver nicht wieder startet liegt dann daran dass das script abgebrochen hat und der apache nicht neu gestartet wurde. der temp. webserver ist noch aktiv (der im script gestartet wurde). Nach einem abbruch von "./renew_certificate.sh" ist mit dem originalen script kein erneuter aufruf möglich. es müste erst der temp. gestartete webserver wieder gekillt werden.
    In diesem Thema im Beitrag 10 unter Punkt 1 gibt es eine Ergänzung für das script. die verhindert diese kleinen "unzulänglichkeit"!
    Das Script mal so abändern, NAS neu starten, dann noch mal versuchen.


    um alles rückgangig zu machen einfach das verzeichnis löschen, den eintrag in der crontab entfernen und dann auf dem admininterface vom qnap
    unter systemeinstellung/sicherheit/zertifikate&private Schlüssel
    Standartzertifikat wiederherstellen & Privater Schlüssel ausführen.


    NAS neu starten!


    mfg kasimodo

    2 Mal editiert, zuletzt von kasimodo ()

  • Besten Dank!


    Das zurücksetzen hat geklappt!


    PS: Ich hab es nochmal versucht mit dem Fix aus Beitrag 10 und es hat diesmal sogar funktioniert. Vielen Dank für deine Hilfe!
    PPS: Etwas war noch merkwürdig: nach dem Reboot war Entware-ng wieder weg, ist das normal? Hällt die "Installation" nur bis zum Reboot?

  • Entware-ng ist erprobt und läuft sehr gut! ist neustart sicher und auch bei einem firmwareupdate!


    schau dir nochmal die installationsanleitung an. für entware-ng gibt es auch zusätzlich eine extra howto.


    da kann nur ein kleiner fehler bei dir sein. der sollte zu finden sein.