Einsatz mehrerer 3CX-MCUs und KI-Transkriptions-Engines in einem einzigen LAN.

Wenn mehrere Instanzen von Diensten betrieben werden, die öffentlich zugängliche FQDNs und SSL-Zertifikate benötigen, kann die Zertifikatsverwaltung eine Herausforderung darstellen.

Um aussagekräftige Beispiele für die Möglichkeiten und Grenzen aufzuzeigen, beginnen wir mit einem gängigen Szenario und erläutern anschließend, wie sich Variationen auf Ihre SSL-Zertifikatsverwaltungsstrategie auswirken.

Das gängige Beispiel-Setup

Um die Sache besser zu veranschaulichen, betrachten wir ein Setup mit 3 Maschinen im selben lokalen Netzwerk (LAN):

  • 3CX-Telefonanlage – IP-Adresse 192.168.0.10
  • 3CX-MCU (integriert) – IP-Adresse 192.168.0.20
  • 3CX-KI (integriert) – IP-Adresse 192.168.0.30

Von 3CX bereitgestellte FQDNs

Die Standard-3CX-Bereitstellung verwendet einen benutzerdefinierten ACME-Client zur automatischen Bereitstellung und Erneuerung von Let’s Encrypt-Zertifikaten. Diese Methode verknüpft das Zertifikat direkt mit der 3CX-Installation und dem FQDN. Es gelten die folgenden drei Voraussetzungen:

1. Dedizierte öffentliche IP-Adressen

Damit diese Konfiguration funktioniert, benötigt jede dieser 3 Maschinen eine eigene öffentliche IP-Adresse; siehe folgendes Beispiel:

FQDN System LAN IP Adresse Öffentliche IP Adresse
mypbx.3cx.com.cy 3CX PhoneSystem 192.168.0.10 20.20.20.20
mymcu.my3cx.net 3CX On-Board MCU 192.168.0.20 20.20.20.21
myai.my3cx.net 3CX On-Board AI 192.168.0.30 20.20.20.22

2. Split-DNS

Ihr LAN-DNS-Server muss so konfiguriert sein, dass Folgendes gewährleistet ist:

  • Innerhalb des LANs werden Ihre FQDNs in ihre LAN-IP-Adressen aufgelöst.
  • Außerhalb des LANs werden Ihre FQDNs in ihre öffentlichen IP-Adressen aufgelöst.

Am einfachsten erreichen Sie dies durch die Erstellung von FQDN-spezifischen A- (oder AAAA-)Einträgen für Ihre LAN-Geräte, wobei Ihr lokaler DNS-Server wie folgt konfiguriert ist:

  • FQDN: mypbx.3cx.com.cy – 3CX-Telefonanlage – IP-Adresse 192.168.0.10
  • FQDN: mymcu.my3cx.net – 3CX On-Board-Mikrocontroller – IP-Adresse 192.168.0.20
  • FQDN: myai.my3cx.net – 3CX On-Board-KI – IP-Adresse 192.168.0.30

Diese Konfigurationen werden unter verschiedenen Bezeichnungen geführt, darunter:

  • Pinpoint-DNS-Zonen
  • Antwortrichtlinienzone (RPZ)
  • Split-Horizon DNS oder Ansichten
  • Schattenzonen

3. Portweiterleitung für die automatische Zertifikatsaktualisierung

Sie müssen Ihre Firewall oder Ihren Edge-Router wie folgt konfigurieren:

  • Leiten Sie den gesamten Datenverkehr (für mymcu.my3cx.net) von 20.20.20.21:80 an 192.168.0.20:80 weiter.
  • Leiten Sie den gesamten Datenverkehr (für myai.my3cx.net) von 20.20.20.22:80 an 192.169.0.32:80 weiter.

Dadurch kann Let’s Encrypt Ihr System für Zertifikatsaktualisierungen erreichen.

Das 3CX-Telefonsystem (mypbx.3cx.com.cy) benötigt diese Portweiterleitung nicht, da es die 3CX-Cloud-Infrastruktur zur Aktualisierung seiner 3CX-FQDN-Zertifikate nutzt.

HINWEIS: Falls Sie Ihren MCU- und/oder KI-Systemen im LAN keine eindeutigen öffentlichen IP-Adressen zuweisen können, müssen Sie Ihre eigenen FQDNs verwenden.

Benutzerdefinierte FQDNs mit Let’s Encrypt und DNS-Automatisierung

Diese Vorgehensweise eignet sich, wenn sich alle drei 3CX-Systeme im LAN befinden und nicht direkt über das öffentliche Internet erreichbar sind. Dies erfordert eine manuelle Konfiguration außerhalb der Standardeinstellungen von 3CX. In diesem Beispiel gehen wir von folgenden FQDNs aus:

  • mypbx.example.com
  • mymcu.example.com
  • myai.example.com

Wie zuvor gelten die folgenden Voraussetzungen:

1. Automatisierungsskript

Sie müssen auf einem Rechner im LAN ein Automatisierungsskript erstellen, das Folgendes leistet:

  • Verwendet den Let’s Encrypt DNS-01-Challenge-Mechanismus.
  • Wird regelmäßig ausgeführt, um sicherzustellen, dass Sie Zertifikate rechtzeitig erneuern.
  • Kommunikation mit Let’s Encrypt, um die Zertifikatserneuerung anzufordern.
  • Kommunikation mit der API Ihres DNS-Anbieters, um die für die Let’s Encrypt-Verifizierung erforderlichen Einträge zu erstellen.
  • Speichert die heruntergeladene Zertifikats-PEM-Datei und die Schlüsseldatei in einem Ordner; zum Beispiel:
/etc/letsencrypt/live/mymcu.example.com/fullchain.pem
/etc/letsencrypt/live/mymcu.example.com/privkey.pem

2. Zertifikatsaktualisierungsskript

Als Nächstes müssen Sie ein Zertifikatsaktualisierungsskript erstellen, das Folgendes leistet:

  • Es prüft, ob neue Zertifikatsdateien vorhanden sind.
  • Wenn es welche findet, kopiert es diese an die richtigen Zielorte.
  • Es löscht die Quelldateien, um unnötiges erneutes Kopieren bei jeder Ausführung zu vermeiden.

Hier ist ein Beispielskript für den Rechner mymcu.example.com, das Sie unter „/root/certupdate.sh“ speichern können (dasselbe gilt für myai.example.com):

#!/bin/bash
cp /etc/letsencrypt/live/mymcu.example.com/fullchain.pem /opt/3cxwm/cert/server.crt
cp /etc/letsencrypt/live/mymcu.example.com/privkey.pem /opt/3cxwm/cert/server.key
chown www-data:www-data /opt/3cxwm/cert/server.*
chmod 600 /opt/3cxwm/cert/server.*

Legen Sie die korrekten Berechtigungen für das Skript fest:

chmod +x /root/certupdate.sh

…und fügen Sie es Ihrer Crontab hinzu, um es beispielsweise jeden Morgen um 3 Uhr auszuführen.

Benutzerdefinierter FQDN – Manuelle Zertifikatserneuerung

Wenn Sie auf die manuelle Zertifikatserneuerung beschränkt sind, beispielsweise weil Ihr DNS-Anbieter keine APIs zur Automatisierung anbietet und Sie möglicherweise auch Wildcard-Zertifikate verwenden, ist das Vorgehen im Wesentlichen dasselbe wie oben beschrieben, nur dass Sie die Änderungen selbst vornehmen müssen, jedoch mit den Vorteilen der Automatisierung.

Alternative Zertifizierungsstelle

Für andere Zertifizierungsstellen als Let’s Encrypt bieten wir hier einen allgemeinen Leitfaden mit Hinweisen zur Auswahl der richtigen Zertifizierungsstelle an.