[HowTo] Letsencrypt (+Plex)

  • Hallo ...


    Ich hab mich heute mal hingesetzt und mir das Letsencrypt fürs QNAP angeschaut. Da ich nun (aus aktuellem Anlass) auch den Plex mit "extern" benutze, musste es hiermit mal sein :)


    In dem firschen App-Store gibts das packet zum Download (http://qnapclub.eu/index.php?act=detail&qpkg_id=309) => einfach installieren


    Dann gehts ans Zertifikate bauen :)
    Ich zeige hier gleich den Weg über ein Script, damit es nachher gleich der crontab erledigen kann (lästige Handarbeit)


    Wenn man danch gleich mit dem Zertifikat loslegen will, hat man ein "Problem" -- die landen nämlich in /etc.
    Das ist beim ersten Reboot "futsch" und der ganze Zinober geht von vorn los.
    Also habe ich den ganzen Rassel in "/share/MD0_DATA/homes/admin/letsencrypt" gelegt.
    Dann überlegen wir uns Domain-Namen (ich hab DynDNS genommen) -- auf Router-Config und deren Settings gehe ich aber hier nicht ein.
    Jetzt sollte jeder noch eine gültige eMail-Addy haben und dann kann es ans bauen gehen...
    Wir gehen ins Verzeichnis "/share/MD0_DATA/homes/admin" und erzeugen eine neue Datei (bei mir letsencrypt.sh)



    Als erstes der Shebang

    Bash
    #!/bin/sh


    dann der Variablenblock

    Bash
    DOMAIN1='www.domain.homeip.net'                    # FQDN mit www am AnfangDOMAIN2='domain.homeip.net'                        # FQDN ohne www am AnfangWEBDIR='/share/MD0_DATA/Web'                       # Pfad zum Web-Verzeichniss auf dem NASCERTS='/share/MD0_DATA/homes/admin/letsencrypt'    # Hier kommt das Zertifikat-Gedönekens reinCPATH=${CERTS}'/live/'${DOMAIN1}                   # Dort liegen die aktriven Zertifikate (Symlinks)HOST='plex-server'                                 # So hab ich das p12 für Plex genanntPASSW='DasIsEinSuperTollesGeheimesPasswort'        # Das kann sich jeder selber ausdenkenEMAIL='empfaenger@email.com'                       # eine gültige eMail-Addy für LetsEncrypt

    Dann mus der SuchPfad im System erweitert werden

    Bash
    export PATH=/opt/LetsEncrypt/bin:$PATH


    jetzt kommt der Befehl zum erzeugen des Zertifikates (danach den Webserver rebooten)

    Bash
    letsencrypt certonly --rsa-key-size 4096 --renew-by-default --webroot --webroot-path ${WEBDIR} -d ${DOMAIN1} -d ${DOMAIN2} -t --agree-tos --config-dir ${CERTS} --email ${EMAIL}/etc/init.d/Qthttpd.sh restart


    und das P12 für Plex erzeugen...

    Bash
    openssl pkcs12 -export -in ${CPATH}'/cert.pem' -inkey ${CPATH}'/privkey.pem' -out ${CPATH}'/'${HOST}'.p12' -name ${HOST} -CAfile ${CPATH}'/chain.pem' -caname root -password pass:${PASSW}


    Jetzt sTunnel und Plex stoppen


    Bash
    /etc/init.d/stunnel.sh stop/share/MD0_DATA/.qpkg/PlexMediaServer/plex.sh stop


    und den Schlüssel kopieren

    Code
    cat ${CPATH}'/privkey.pem' ${CPATH}'/cert.pem' > /etc/stunnel/stunnel.pemcp ${CPATH}'/chain.pem' /etc/stunnel/uca.pem


    Jetzt noch die Dienste wieder starten


    Bash
    /etc/init.d/stunnel.sh start/share/MD0_DATA/.qpkg/PlexMediaServer/plex.sh start


    und das Thema ist "gegessen" ...
    Ab jetzt könnt ihr auf euer NAS und auf Plex per HTTPS ohne Zertifikatswarnung zugreifen...


    Um das ganze abzurunden, pusten wir das Script noch in den Crontab (nur 1x !!!!)

    Bash
    echo "0 3 1 * * /share/MD0_DATA/homes/admin/letsencrypt.sh" >> /etc/config/crontabcrontab /etc/config/crontab


    Ab jetzt müssen wir uns nicht mehr um das ganze Zeugs kümmern -- alles per Automatik erledigt ...




    für alle noch mal das Script im Ganzen:



    Viel Spaß damit :)

  • Hi,


    danke für die Anleitung. Habe selber einen Plex Pass und nutze Plex auch per Web, allerdings nicht direkt über meinen FQDN sondern so wie es Plex per default mit den Wildcard Zertifikaten von Plex.
    Für mein NAS nutzte ich ein cert von letsencrypt (nach dieser Anleitung hier im Forum)


    Habe mir die letzten Tage auch überlegt, das cert vom NAS für Plex zu nutzten, da kommt mir die Anleitung gerade recht, werd es gleich mal testen.


    Ohne es bis jetzt selber geprüft zu haben aber ich denke es fehlt noch die Info, dass der Pfad zum Cert im Plex Server hinterlegt werden muss. Nicht das jemand denkt, dass nach der Anleitung Plex automatisch schon die certs nutzt.
    Evtl. mit Screeshot ;)


    gruß

  • noch meine kleinen Anmerkungen:


    - MD0_DATA gibt es nicht bei jedem. Je nachdem welches Volume auf dem NAS konfiguriert ist, kann das auch CACHEDEV1_DATA oder anders sein.
    Ein relativer Pfad wäre hier passender, aber ich hab auch noch keine variable dafür finden können.


    - Ein log der cron Ausgabe wäre noch sinnvoll, damit man sieht, wenn es mal nicht funktioniert hat. Beispiel:

    Bash
    echo "0 3 1 * * /share/MD0_DATA/homes/admin/letsencrypt.sh >> /share/MD0_DATA/homes/admin/letsencrypt_renew.log 2>&1" >> /etc/config/crontab


    - Plex muss glaube ich nicht neu gestartet werden. Das war zumindest bei mir so.
    - chmod +x letsencrypt.sh musst ich noch ausgführen, damit die Datei ausfürhbar ist


    Ansonten hab ich das grad mal so durchgeführt und läuft einwandfrei, danke!

    3 Mal editiert, zuletzt von ben_beton ()

  • Gibt es die möglichkeit unter Fw 4.3.3 das zertifikat, welches das nas automatisch bezieht in Plex einzurichten?

  • https://forums.plex.tv/discussion/255563


    EDIT:
    Ich glaube, das was du und ich suchen, ist nicht das was in dem Link ist.


    Ich würde gerne das SSL Zertifikat, welches für meine myqnapcloud.com adresse erstellt wurde (und auch funktioniert), auch für mein Plex Server nutzen.
    Beispiel: name.myqnapcloud.com -> funktioniert, ich komm auf die QNAP Oberfläche
    name.myqnapcloud.com:32400/web/index.html funktioniert nicht, verbindung ist unsicher.


    Ist das normal? obwohl die Plex Seite aus der gleichen Domäne aufgerufen wird?

    2 Mal editiert, zuletzt von Souljumper ()

  • Hallo zusammen, da es mittlerweile "letsencrypt" durch certbot ausgetauscht wurde: Wie würde das dort funktionieren?

  • Ich habe es mit der myQnapcloud am laufen:

    https://NAME.myqnapcloud.com:32400 funktioneirt bei mir.


    Dazu loggt ihr euch via WINSCP auf euer Nas ein und wechselt ins Verzeichnis

    /mnt/HDA_ROOT/.config/QcloudSSLCertificate/cert

    Dort erstellt ihr die Datei script.sh und kopiert folgendes rein.

    unter

    Code
    CERT_PASS=XXX
    HOST_NAME=XXX.myqnapcloud.com

    Tragt Ihr ein Wunsch-Passwort ein und eure myqnapcloud Adresse.

    1mal das Script ausführen.

    Dann wechselt Ihr auf das Plex-Webinterface

    ->Einstellungen

    ->Netzwerk

    ->Erweiterte Optionen.

    Als Zertifikatsspeicherort:

    /mnt/HDA_ROOT/.config/QcloudSSLCertificate/cert/cert.p12

    Eigener Zertifikatsschlüssel:

    euer zuvor festgelegtes Passwort

    Eigene Zertifikatsdomain:

    xxx.myqnapcloud.com

    Dann die Änderungen übernehmen.

    Das Script nochmal ausführen.

    Jetzt sollte die Seite auch über https erreichbar sein.

    Ich habe das Script bei mir in die Crontab eingefügt.