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
dann der Variablenblock
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
jetzt kommt der Befehl zum erzeugen des Zertifikates (danach den Webserver rebooten)
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...
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
und den Schlüssel kopieren
cat ${CPATH}'/privkey.pem' ${CPATH}'/cert.pem' > /etc/stunnel/stunnel.pemcp ${CPATH}'/chain.pem' /etc/stunnel/uca.pem
Jetzt noch die Dienste wieder starten
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 !!!!)
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:
#!/bin/sh
DOMAIN1='www.domain.homeip.net' # FQDN mit www am Anfang
DOMAIN2='domain.homeip.net' # FQDN ohne www am Anfang
WEBDIR='/share/MD0_DATA/Web' # Pfad zum Web-Verzeichniss auf dem NAS
CERTS='/share/MD0_DATA/homes/admin/letsencrypt' # Hier kommt das Zertifikat-Gedönekens rein
CPATH=${CERTS}'/live/'${DOMAIN1} # Dort liegen die aktriven Zertifikate (Symlinks)
HOST='plex-server' # So hab ich das p12 für Plex genannt
PASSW='DasIsEinSuperTollesGeheimesPasswort' # Das kann sich jeder selber ausdenken
EMAIL='empfaenger@email.com' # eine gültige eMail-Addy für LetsEncrypt
export PATH=/opt/LetsEncrypt/bin:$PATH
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
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}
/etc/init.d/stunnel.sh stop
/share/MD0_DATA/.qpkg/PlexMediaServer/plex.sh stop
cat ${CPATH}'/privkey.pem' ${CPATH}'/cert.pem' > /etc/stunnel/stunnel.pem
cp ${CPATH}'/chain.pem' /etc/stunnel/uca.pem
/etc/init.d/stunnel.sh start
/share/MD0_DATA/.qpkg/PlexMediaServer/plex.sh start
Alles anzeigen
Viel Spaß damit