Domoticz – HTTPS met certificaat van Synology NAS

Om te voorkomen het wiel ooit opnieuw uit te moeten vinden heb ik hieronder alle stappen opgeschreven waarmee het mij gelukt is om geautomatiseerd het certificaat van mijn NAS op te halen om deze vervolgens toe te passen in Domoticz op een Raspberry Pi. Als bonus ook een aanzet om het certificaat beschikbaar te maken voor Docker op een Synology NAS.

Het certificaat kopiëren naar een gedeelde map

Log in op DSM (Disk Station Manager) met een administrator account (standaard: admin).
Open het menu linksbovenin.
Open het configuratiescherm.
Klik op Taakplanner (onder Systeem).

Creëer een opslag-map:
Maak een map aan op de server welke je later kan delen.
bijv: “/volume1/homes/Michel/Certificaten/batssoft.nl/”

Maak een nieuwe taak aan:
Klik op Maken –> Geplande Taak –> Door de gebruiker gedefinieerd script.
Geef de taak een naam.
Kies, indien dat niet geselecteerd is, voor de gebruiker root.
Ga naar het tabblad Planning en stel in wanneer je het certificaat wilt kopiëren.
Op het tabblad Taakinstellingen plaats je in de box onder Door de gebruiker gedefinieerd script het volgende:
#!/usr/bin/bash
filename="/usr/syno/etc/certificate/_archive/DEFAULT"
while read -r line; do
name="$line"
cp -rf "/usr/syno/etc/certificate/_archive/$name/." "/volume1/homes/Michel/Certificaten/batssoft.nl/"
done < "$filename"

De regel achter cp dien je aan te passen met je eigen locatie.
Klik op OK om de taak op te slaan.

Voer de taak een keer handmatig uit.
Klik met de rechtermuisknop op de zojuist aangemaakte taak en klik op Uitvoeren.
Controleer of je certificaat gekopieerd is naar de door jou gekozen map.

Het certificaat kopiëren naar Domoticz

Log via SSH in op Domoticz.
Voer onderstaande opdracht uit.
sudo nano /etc/rc.local

Voor onderstaande code uit om een map aan te maken.
sudo mkdir /mnt/certificaat

Voeg het onderstaande toe aan rc.local.
(sleep 30
sudo mount -t cifs //192.168.1.10/homes/Michel/Certificaten/batssoft.nl /mnt/certificaat -o user=[USERNAME],pass=[PASSWORD]) &

Sluit nano af met Ctrl + X en sla het bestand op.

Start de Raspberry opnieuw op en controleer of de map gemount is:
sudo reboot
Na het opstarten wacht je ongeveer een minuut en voer je het volgende uit:
df -h
Als alles goed is gegaan zie je iets wat lijkt op het volgende:
//192.168.1.10/homes/Michel/Certificaten/batssoft.nl 17T 9,6T 6,7T 59% /mnt/certificaat
Als het niet werkt kun je onderzoeken wat het probleem is door onderstaande uit te voeren:
dmesg

Creëer een dhparam.pem bestand:
sudo openssl dhparam -out /home/pi/certificaat/dhparam.pem 2048

Open Crontab met onderstaande commando:
sudo crontab -e
Kies, indien gevraagd als programma nano.
0 12 * * 7 sudo cp -rf /mnt/certificaat/. /home/pi/certificaat/
0 13 * * 7 cat /home/pi/certificaat/cert.pem /home/pi/certificaat/chain.pem /home/pi/certificaat/fullchain.pem /home/pi/certificaat/privkey.pem /home/pi/certificaat/dhparam.pem > /home/pi/certificaat/certificate.pem

Sluit nano af met Ctrl + X en sla het bestand op.

Voer de commando's uit de cronjob ook een keer handmatig uit:
sudo cp -rf /mnt/certificaat/. /home/pi/certificaat/
cat /home/pi/certificaat/cert.pem /home/pi/certificaat/chain.pem /home/pi/certificaat/fullchain.pem /home/pi/certificaat/privkey.pem /home/pi/certificaat/dhparam.pem > /home/pi/certificaat/certificate.pem

Pas het startbestand aan van Domoticz door onderstaande commando uit te voeren:
sudo nano /etc/init.d/domoticz.sh
Voeg onder de regel met -sslwww het volgende toe:
DAEMON_ARGS="$DAEMON_ARGS -sslcert /home/pi/certificaat/certificate.pem"

Start de Raspberry opnieuw op en controleer of Domoticz nu via HTTPS bereikbaar is.
sudo reboot