Synagios/nagrestconf: https einrichten
Ich gehe von einer (grundinstallierten) lauffäigen Synagios-Installation aus. In meiner Umgebung kommt eine DiskStation DS213j zum Einsatz, bei anderen Modellen sollte nachfolgend beschriebene Vorgehensweise zum Einrichten des https-Zugriffs aber identisch sein.
Zertifikatsdateien kopieren: copy_sslcert.sh
An meiner DiskStation habe ich ein Let's Encrypt-Zertifikat eingerichtet und dieses als Standard-Zertifikat definiert. Dieses Zertifikat möchte ich auch für den https-Zugriff auf die Synagios/nagrestconf verwenden. Um dies zu realisieren, wird folgendes Script copy_sslcert.sh per Cronjob im Abstand von 5 Minuten aufgerufen:
#!/bin/sh
# We need some variables
dstfldr="/volume1/@appstore/Synagios/nagios-chroot/etc/ca-certificates/mycerts"
certfldr="/usr/syno/etc/certificate/_archive"
defcertfldr=`cat $certfldr/DEFAULT`
# Check if default ssl cert folder exists:
if [ -d "$certfldr/$defcertfldr" ]; then
# Copy certificate files to dstfldr
cp $certfldr/$defcertfldr/cert.pem $dstfldr
cp $certfldr/$defcertfldr/fullchain.pem $dstfldr
cp $certfldr/$defcertfldr/privkey.pem $dstfldr
fi
dstfldr: der Zielordner, wo die Zertifikatsdateien hin kopiert werden. Wichtig: der Ordner muss irgendwo unter /volume1/@appstore/Synagios/nagios-chroot/ liegen, da Synagios in einer chroot-Umgebung ausgeführt wird. Empfehlenswert wäre der Speicherort wie im Script bereits hinterlegt, sonst muss dieser ggf. erstellt werden.
certfldr: der Standardspeicherort, wo die DiskStation für alle vorhandenen Zertifikate einen Unterordner anlegt
defcertfldr': wie eingangs erwähnt habe ich als Standard-Zertifikat das Let's Encrypt Zertifikat in der DiskStation-Konfig ausgewählt. In der Datei /usr/syno/etc/certificate/_archive/DEFAULT speichert Synology den Namen des Unterordners, wo diese Dateien abgelegt sind. Ich lese den Inhalt aus und kopiere im weiteren Script-Verlauf die 3 benötigten Dateien aus dem Standardzertifikatsordner nach dstfldr
Wichtig: nicht vergessen, das Script mit
chmod 700 copy_sslcert.sh
ausführbar zu machen.
Die Scriptdatei habe ich bei mir unter /var/scripts abgespeichert.
/etc/crontab
Da das Let's Encrypt-Zertifikat automatisch aktualisiert wird, führe ich das Script copy_sslcert.sh alle 5 Minuten über einen Cronjob aus. Editiere daher die Datei /etc/crontab und füge folgende Zeile ein:
*/5 * * * * root /var/scripts/copy_sslcert.sh