[Howto] Eigenes Zertifikat mit "qnap-letsencrypt"

  • Hallo zusammen,


    ich habe ein Frage zu der Anleitung bzw. zu dem Script. In Zeile 15-20 steht folgendes:

    Bash
    # !! Achtung Schreibfehler in der Anleitung auf "https://github.com/Yannik/qnap-letsencrypt"
    #-------------------------------------------------------------------------------------------
    cp ../openssl.cnf openssl-csr-config.cnf
    #--------------------------------------------------------------------------------
    # hier edit!
    printf "subjectAltName=DNS:nas.xxx.de,DNS:www.nas.xxx.de" >> openssl-csr-config.cnf
    #-----------------------------------------------------------------------------------------------

    Muss das erste fett geschriebeneDNS:nas.xxx.de gelöscht werden?


    Wie muss das 2. fett geschriebene DNS:www.nas.xxx.de angepasst werden, wenn der Server unter https://test.myqnapcloud.com über das Internet erreichbar ist (also den myqnapcloud.com Service)





    Könnt ihr mir da bitte kurz die "Lösung" für das beispiel zeigen? Ich glaube das dies auch anderen gut weiterhelfen kann :)

  • Hallo bigexcel


    z.B. so:
    printf "subjectAltName=DNS:test.myqnapcloud.com" >> openssl-csr-config.cnf


    oder falls Dir die ganze Domain myqnapcloud.com gehört, würde ich es so machen:
    printf "subjectAltName=DNS:www.myqnapcloud.com,DNS:myqnapcloud.com" >> openssl-csr-config.cnf
    OHNE DIE LEERSCHRITTE!!! Ich hab di nur darein gemacht, damit man es nicht als Link lesen muss!!!


    was Du nicht einsetzen darfst (habe ich dummerweise probiert):
    printf "subjectAltName=DNS:*.myqnapcloud.com" >> openssl-csr-config.cnf

  • OHNE DIE LEERSCHRITTE!!! Ich hab di nur darein gemacht, damit man es nicht als Link lesen muss!!!

    Wenn du dich an die Forenregeln halten und Code in Codeblocks bzw. bei Einzeilern den Inlinecode-Tag verwenden würdest, bräuchtest du diese Maßname gar nicht.

  • !! Achtung Schreibfehler in der Anleitung auf "https://github.com/Yannik/qnap-letsencrypt"
    #-----------------------------------------------------------------------------------------------------------




    und was hat es damit auf sich? hat das so wie es ist einen Einfluss? oder kann ich das script einfach copy paste nutzen?

  • Ich habe alles laut Anleitung gemacht aber irgendwie bekomme ich immer diesen Fehler ...


    Code
    Serving HTTP on 0.0.0.0 port 80 ...Parsing account key...Parsing CSR...Registering account...Traceback (most recent call last):  File "acme-tiny/acme_tiny.py", line 198, in <module>    main(sys.argv[1:])  File "acme-tiny/acme_tiny.py", line 194, in main    signed_crt = get_crt(args.account_key, args.csr, args.acme_dir, log=LOGGER, CA=args.ca)  File "acme-tiny/acme_tiny.py", line 85, in get_crt    "agreement": "https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf",  File "acme-tiny/acme_tiny.py", line 47, in _send_signed_request    protected["nonce"] = urlopen(CA + "/directory").headers['Replay-Nonce']  File "/share/CACHEDEV1_DATA/.qpkg/Python/lib/python2.7/urllib2.py", line 126, in urlopen    return _opener.open(url, data, timeout)  File "/share/CACHEDEV1_DATA/.qpkg/Python/lib/python2.7/urllib2.py", line 400, in open    response = self._open(req, data)  File "/share/CACHEDEV1_DATA/.qpkg/Python/lib/python2.7/urllib2.py", line 423, in _open    'unknown_open', req)  File "/share/CACHEDEV1_DATA/.qpkg/Python/lib/python2.7/urllib2.py", line 378, in _call_chain    result = func(*args)  File "/share/CACHEDEV1_DATA/.qpkg/Python/lib/python2.7/urllib2.py", line 1240, in unknown_open    raise URLError('unknown url type: %s' % type)urllib2.URLError: <urlopen error unknown url type: https>Stopping periodic command scheduler: crond.Starting periodic command scheduler: crond.

    Könnt Ihr damit etwas anfangen? Ich stehe hier irgendwie so richtig auf dem Schlauch ...


    Danke schon mal im voraus!


    Also ich habe nochmal ein wenig rumprobiert und versucht zu überprüfen, ob ich wirklich alles korekt mache. Entware ist drauf, weil ich schon andere Pakete davon nutze.
    Ich habe mir in /opt ein Script mit folgendem Inhalt hingelegt (ich habe es aus den Posts versucht so zusammen zu bauen, wie es sein "sollte"):


    Bash
    cd /opt/wget --no-check-certificate https://curl.haxx.se/ca/cacert.pemgit config --system http.sslVerify truegit config --system http.sslCAinfo `pwd`/cacert.pemgit clone https://github.com/Yannik/qnap-letsencrypt.gitmv cacert.pem qnap-letsencryptcd /opt/qnap-letsencryptgit config --system http.sslCAinfo `pwd`/cacert.pem./init.shcd /opt/qnap-letsencrypt/letsencrypt# !! Achtung Schreibfehler in der Anleitung auf "https://github.com/Yannik/qnap-letsencrypt"#--------------------------------------------------------------------------------------------#cp ../openssl.cnf openssl-csr-config.cnf#--------------------------------------------------------------------------------# hier edit!printf "subjectAltName=DNS:NameMeinesNas.myqnapcloud.com" >> openssl-csr-config.cnf#----------------------------------------------------------------------------------openssl req -new -sha256 -key keys/domain.key -subj "/" -reqexts SAN -config openssl-csr-config.cnf > domain.csrmv /etc/stunnel/stunnel.pem /etc/stunnel/stunnel.pem.origcd /opt/qnap-letsencrypt./renew_certificate.shecho "30 3 * * * cd /opt/qnap-letsencrypt/ && ./renew_certificate.sh >> ./renew_certificate.log 2>&1" >> /etc/config/crontabcrontab /etc/config/crontab/etc/init.d/crond.sh restart


    "git-http" ist vorhanden, also habe ich die erste Zeile mal weggelassen.
    Der Output, den ich reproduzierbar bekomme, ist jetzt der folgende:




    Any ideas?
    Icke gerade nicht mehr ...

  • hallo,


    wie hast du diese zeile editiert:
    printf "subjectAltName=DNS:NameMeinesNas.myqnapcloud.com" >> openssl-csr-config.cnf


    kannst du deine domain mit "nslookup" auflösen?


    Beispiel:
    Mod: Adresse zur Wahrung der Privatsphere entfernt.

  • Bin gerade nicht am Rechner, aber ich habe da die Adresse reingeschrieben, welche ich sonst real für die Zugriffe nutze:


    Mod: Adresse zur Wahrung der Privatsphere entfernt.

  • also die revers und namensauflösung von deiner domain funzt schon mal nicht!
    bevor du mit den zerifikaten weitermachst sollte namensauflösung und die webkonfiguration funzen

  • Hm, spannend. Da bin ich mal vom Guten ausgegangen und habe diese Selbstverständlichkeit nicht überprüft.


    Ich weiß zwar gerade nicht so recht, was ich da machen soll, weil es nicht meine Domain ist, aber Tag ist ja noch jung.


    Ich danke Dir schon mal für Deine Mühe!


    also die revers und namensauflösung von deiner domain funzt schon mal nicht!
    bevor du mit den zerifikaten weitermachst sollte namensauflösung und die webkonfiguration funzen

    Ich danke Dir für Deine Mühe!
    Aber irgendwie stehe ich gerade auf dem Schlauch, wie ich das anpassen soll. Ich nutze einerseits den Service der Domain von MyQnapCloud. Ich habe es aber auch schon mit einem DynDNS-Anbieter versucht. Was hast Du denn gemacht, um die Auflösung in beide Richtungen soi zu haben, dass alles passt?
    Bei mir wird von der IP her immer ein Hostname angezeigt, den die Telekom fürt meinen Anschluß vergibt. Mir ist nicht ganz klar wie ich da eingreifen kann, damit bei dieser Abfrage wieder meine angegebene Domain steht.


    :S

  • Hallo,
    mal eine Frage:
    Im qnapclub-appstore gibt es doch die letsencrypt-app. Hängt dieser Thread damit zusammen? Hat jemand Erfahrung mit dieser app?

  • Hallo,


    das Thema hier hat nichts mit der APP zu tun. Ich habe diese eben mal heruntergeladen und das QPKG entpackt.
    "Kiloweise" Dateien und ich hab mich da dann nicht weiter durch gewurstelt.
    Der Ansatz von Yannik (siehe erster Beitrag) ist viel übersichtiger.


    vG Kasimodo

  • Moin zusammen,


    bei einem renewcertificate.sh Durchlauf treffe ich auf ein Problem:



    Code
    Renewing certificate...Stopping Qthttpd hogging port 80..Shutting down Qthttpd services: OK.Started python SimpleHTTPServer with pid 4128Serving HTTP on 0.0.0.0 port 80 ...Parsing account key...Parsing CSR...Registering account...Already registered!Verifying www.meinnetz.de...Traceback (most recent call last):File "acme-tiny/acme_tiny.py", line 198, in <module>main(sys.argv[1:])File "acme-tiny/acme_tiny.py", line 194, in mainsigned_crt = get_crt(args.account_key, args.csr, args.acme_dir, log=LOGGER, CA=args.ca)File "acme-tiny/acme_tiny.py", line 111, in get_crtwith open(wellknown_path, "w") as wellknown_file:IOError: [Errno 2] No such file or directory: u'tmp-webroot/.well-known/acme-xchallenge/fVcjn8WOr5t_TZOTR9snQ_m4a4TfxkbBkBgFnHXwV2s'




    Der HTTP Webserver ist korrekt gestartet, das tmp-webroot Verzeichnis ist leererweise vorhanden. Die Pfadangabe "u'tmp-webroot" kommt mir komisch vor.


    Habt ihr eine Idee, warum er die Challenge nicht schreibt bzw. warum das "u'" vor dem tmp-webroot steht bzw. wo das herkommt?


    Oder hat diese Fehlermeldung eine andere Ursache, etwa in der acme-tiny.py?!


    Die renewcertificate.sh pack ich auch noch mal ran. Noch drängelt es nicht, aber so in einem Monat müsste ich das Zertifikat doch mal erneuern.


    Falls ihr also eine Idee oder Verdacht habt, immer her damit.




    Viele Grüße,
    Stefan


    Moin nochmal,


    manchmal hilft es schon, seine Sorgen in diesem Forum niederzuschreiben. Beim Editieren des newcertificate.sh scipts mit Nano hat sich ein "x" in die Pfadangabe [xchallenge statt challenge] eingeschlichen. Natürlich stehe ich erstmal im Wald, aber nun, da das "x" raus ist, klappt alles.


    Danke euch trotzdem, ohne das Niederschreiben und rumkopieren hätte ich meinen selbstverursachten Typo wohl noch länger gesucht. :)


    Moin (schonwieder),


    leider hat sich nach dem renewcertificate.sh nun das Webinterface verabschiedet und ich komm nur noch per SSH auf die Kiste. Hat jemand eine Idee, wo ich da suchen kann bzw. wo der Qthttp das Log hinpackt? Ein Reboot hat nichts gebracht. Ein /etc/init.d/Qthttp.sh start bringt ein OK, ich komm aber trotzdem nicht rauf.


    Viele Grüße,
    Stefan


    Moin (ihr werdet mich nicht los :) ) oder eher Nabend,


    so, jetzt komme ich wenigstens an das Webinterface per http - da ist wohl beim renew des ssl Zertifikats ordentlich was in die Binsen gegangen. Wenigstens kann ich jetzt in aller Ruhe ein aktuelles Backup anfertigen. Habe jetzt erstmal mein QnapSSL-Zertifikat wieder aktivert, die Kiste neu gestartet und komme jetzt wieder an alles ran - nur halt nicht mit dem Zertifikat von letsencrypt. Entware ist noch da, hat sogar das Firmwareupdate auf die neueste Version überlebt. Wenigstens was positives. So, und nun überlege ich, das ganze nochmal mit letsencrypt zu probieren oder lieber einen Zertifikatsprovider zu wählen, wo man diesen ganzen Stress nicht jeden Monat bzw jedes Quartal wieder hat... Oder ich wags nochmal mit Letsencrypt?! Mal sehen...


    Für heute habe ich jedenfalls genug und hau mich jetzt in die Falle...


    Viele Grüße,
    Stefan


    Moin zusammen,


    so, hab jetzt das qnap-letsencrypt Verzeichnis weggesichert, gelöscht und bin den Prozess nochmal von vorne durch und habe nun wieder ein 3 Monate gültiges Zertifikat. Yay ^^ !


    Und wenn das Viech sich beim nächsten renew wieder zerlegt, weiss ich mir dank dieses Forums und der Nachbarforen nun zu helfen! :qclub:
    Viele Grüße,
    Stefan

    2 Mal editiert, zuletzt von puzuma ()

  • Wäre es möglich, statt der Anleitung + 3 Seiten Änderungen und Verbesserungen, einfach die fertige vollständige Anleitung in den Ausgangsbeitrag zu schreiben?



    (Oder den Satz »In 5 Minuten zum eigenen Zertifikat mit "qnap-letsencrypt" !!!« rauszunemen, in der Zeit schafft man es ja so nicht mehr.)

  • Hallo Zusammen,


    kann man das erstellte Zertifikat auch auf die Fritzbox exportieren ? Hat bei mir jetzt bei Export über die Weboberfläche des Qnap und einem anschliessenden Import in die Fritzbox nicht geklappt. +


    Beste Grüße

  • Irgendwie verstehe ich den Sinn nicht ganz. Ein Zertifikat ist für mich eine Bestätigung, durch einen unabhängigen Dritten, dass das was ich habe und mache in Ordnung ist. Also ich lasse mir von Amts wegen ein polizeiliches Führungszeugnis ausstellen und fahre mit meinem Auto beim TÜV vor und lasse das prüfen. Wenn ich nun irgendjemandem beweisen muss, dass ich ein unbescholtener Bürger bin, der mit einem verkehrssicheren Auto unterwegs ist, dann kann ich meine Zertifikate vorzeigen (Führungszeugnis und TÜV-Abnahme) und kann zumindest beweisen, dass bisher bzw. zumindest zum Zeitpunkt der Prüfung mit mir alles in Ordnung war.
    Hat nun jeder die Möglichkeit sich selbst und kostenlos ein Zertifikat zu generieren, dann ist das für mich als drucke ich mir selber zu Hause ein Führungszeugnis und einen TÜV-Bericht aus. Nicht nur, dass ich damit rein gar nichts beweisen könnte, mache ich mich mit sowas doch eher noch extra verdächtig.


    Und andersrum, wenn ich ein Fahrzeug habe, von dem ich weiß das es in Ordnung ist, weil ich zum Beispiel selbst Kfz-Meister und Gutachter bin, nur dass ich damit nicht zum TÜV fahre, weil ich das Auto nur auf privatem Gelände betreibe und ich der einzige Benutzer bin, dann wäre mir der Warnhinweis »Achtung dieses Fahrzeug hat keine TÜV-Plakette« auch völlig egal.

  • Dann Solltest du dich einmal mit dem Thema SSL beschäftigen.


    Ein SSL Zertifikat dient nicht ausschließlich als Identitätsnachweis. Ein z.B. selbst signiertes SSL-Zertifikat dient u.A. der Verschlüsselten Kommunikation und Datenübertragung.
    Daher werden diese Zertifikate im Browser auch rot gekennzeichnet, da sie ausschließlich der Verschlüsselung dienen und keine Identität bestätigen.

  • Also ich dachte bislang https wäre ein sicheres Protokoll und das Zertifikat nur die Authentifizierung. Ähnlich wie in meinem Autobeispiel, dass technisch durch den TÜV käme, nur dass ich keine Plakette habe, weil ich es niemandem beweisen muß.

  • Dann Solltest du dich einmal mit dem Thema SSL beschäftigen.

    Du aber auch. Die Verschlüsselung ist auch ohne Zertifikat gegeben. Das Zertifikat weist die Qwelle nur als authentisch aus, was über eine unabhängige Zertifizierungsstelle überprüft und bestätigt wird.