3CX mit Let’s Encrypt und Certbot mit eigener Domain

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.

Schreibe einen Kommentar