Achtung!, Software wie Certbot auf dem 3CX Server zu installieren ist von 3CX nicht offiziell supportet und potentiell gefährlich
In diesem Blogeintrag zeige ich, wie man Certbot und Let’s Encrypt TLS-Zertifikate auf einem Debian Stretch (9) 3CX Server verwendet.
Schritt 1: SSH Verbindung zum Server herstellen
Schritt 2: Certbot über snap installieren:
Ausführliche Anleitung unter: https://certbot.eff.org/lets-encrypt/debianstretch-nginx
apt-get install snapd
sudo snap install core; sudo snap refresh core
sudo snap install –classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
Schritt 3: Zertifikat im Standalone-Modus beantragen
Mit folgendem Befehlt das Zertifikat beantragen. „dein-fqdn.de“ durch den verwendetet FQDN ersetzen.
certbot certonly –standalone -d dein-fqdn.de
Schritt 4: Nun legen wir ein Script an, welches das Let’s Encrypt Zertifikat an die richtige Stelle verschiebt
Anlegen eines Ordners für das Script
mkdir /scripts
In den Ordner wechseln und dort das Script erstellen
cd /scrips/
nano update_cert_3cx.sh
Nun das Script einfügen und jeweils „dein-fqdn.de“ durch den verwendetet FQDN ersetzen.
#!/bin/bash
mv /var/lib/3cxpbx/Bin/nginx/conf/Instance1/dein-fqdn.de-crt.pem /var/lib/3cxpbx/Bin/nginx/conf/Instance1/dein-fqdn.de-crt.pem.old
mv /var/lib/3cxpbx/Bin/nginx/conf/Instance1/dein-fqdn.de-key.pem /var/lib/3cxpbx/Bin/nginx/conf/Instance1/dein-fqdn.de-key.pem.old
cp /etc/letsencrypt/live/dein-fqdn.de/fullchain.pem /var/lib/3cxpbx/Bin/nginx/conf/Instance1/dein-fqdn.de-crt.pem
cp /etc/letsencrypt/live/dein-fqdn.de/privkey.pem /var/lib/3cxpbx/Bin/nginx/conf/Instance1/dein-fqdn.de-key.pem
chown phonesystem:phonesystem /var/lib/3cxpbx/Bin/nginx/conf/Instance1/dein-fqdn.de-crt.pem chown phonesystem:phonesystem /var/lib/3cxpbx/Bin/nginx/conf/Instance1/dein-fqdn.de-key.pem
chmod 644 /var/lib/3cxpbx/Bin/nginx/conf/Instance1/dein-fqdn.de-crt.pem
chmod 640 /var/lib/3cxpbx/Bin/nginx/conf/Instance1/dein-fqdn.de-key.pem
systemctl restart nginx.service
Das Script nun mit folgendem Befehl ausführbar machen:
chmod +x update_cert_3cx.sh
Schritt 5: Dieses Script muss nach jedem „renewal“ des Let’s Encrypt Zertifikats automatisch ausgeführt werden.
Hierzu muss in der renewal config ein „renew_hook“, welcher das angelegte Script ausführt, angelegt werden.
Hierzu öffnet man die folgende Datei
nano /etc/letsencrypt/renewal/dein-fqdn.de.conf
Am Ende der Konfiguration muss folgende Zeile angefügt werden:
renew_hook = /scripts/update_cert_3cx.sh
Schritt 6: Renewal und Zertifikatsverteilung ausführen und testen
certbot renew –force-renewal
Nun das Webinterface der 3CX im Browser aufrufen und prüfen, ob das Let’s Encrypt Zertifikat korrekt deployed wurde.
