Wdrażanie wielu jednostek 3CX MCU i silników transkrypcji AI w jednej sieci LAN.
Uruchamianie wielu instancji usług, które wymagają publicznych domen FQDN i certyfikatów SSL, może być sporym wyzwaniem pod kątem zarządzania.
Aby pokazać, co można osiągnąć (a czego nie), posłużymy się powszechnym scenariuszem jako punktem wyjścia, a następnie omówimy, jak różne warianty wpływają na Twoją strategię zarządzania certyfikatami SSL.
Przykładowa konfiguracja
Dla ułatwienia przyjmijmy, że dysponujemy zestawem trzech maszyn wewnątrz tej samej sieci lokalnej (LAN):
- 3CX PhoneSystem – adres IP 192.168.0.10
- 3CX On-Board MCU – adres IP 192.168.0.20
- 3CX On-Board AI – adres IP 192.168.0.30
Domeny FQDN dostarczane przez 3CX
Standardowe wdrożenie 3CX wykorzystuje własnego klienta ACME do automatycznego wystawiania i odnawiania certyfikatów Let’s Encrypt. Ta metoda wiąże certyfikat bezpośrednio z instalacją 3CX i domeną FQDN. Aby to rozwiązanie działało, muszą zostać spełnione trzy poniższe wymagania:
1. Dedykowane publiczne adresy IP
W tej konfiguracji każda z trzech maszyn wymaga dedykowanego, publicznego adresu IP. Spójrz na poniższy przykład:
| FQDN | System | Adres IP LAN | Publiczny adres IP |
|---|---|---|---|
| mypbx.3cx.com.cy | 3CX PhoneSystem | 192.168.0.10 | 20.20.20.20 |
| mymcu.my3cx.net (przypisany automatycznie) | 3CX On-Board MCU | 192.168.0.20 | 20.20.20.21 |
| myai.my3cx.net (przypisany automatycznie) | 3CX On-Board AI | 192.168.0.30 | 20.20.20.22 |
2. Split DNS
Twój serwer DNS w sieci LAN musi być skonfigurowany tak, aby:
- Wewnątrz sieci LAN domeny FQDN wskazywały na lokalne adresy IP.
- Na zewnątrz sieci LAN domeny FQDN wskazywały na publiczne adresy IP.
Najprostszym sposobem jest utworzenie rekordów A (lub AAAA) dla konkretnych domen FQDN na lokalnym serwerze DNS w następujący sposób:
- FQDN: mypbx.3cx.com.cy – 3CX PhoneSystem – Adres IP 192.168.0.10
- FQDN: mymcu.my3cx.net – 3CX On-Board MCU – Adres IP 192.168.0.20
- FQDN: myai.my3cx.net – 3CX On-Board AI – Adres IP 192.168.0.30
Tego typu konfiguracje funkcjonują pod różnymi nazwami, takimi jak:
- Strefy Pinpoint DNS (Pinpoint DNS Zones)
- Response Policy Zone (RPZ)
- Split-Horizon DNS lub Widoki (Views)
- Strefy Shadow (Shadow Zones)
3. Przekierowanie portów do automatycznej aktualizacji certyfikatów
Musisz skonfigurować firewall lub router brzegowy tak, aby:
- Przekierowywał cały ruch (dla mymcu.my3cx.net ) z 20.20.20.21:80 na 192.168.0.20:80
- Przekierowywał cały ruch (dla myai.my3cx.net) z 20.20.20.22:80 na 192.169.0.30:80
Pozwoli to Let’s Encrypt połączyć się z Twoją maszyną w celu aktualizacji certyfikatu.
System 3CX PhoneSystem (mypbx.3cx.com.cy) nie wymaga tego przekierowania, ponieważ wykorzystuje infrastrukturę chmurową 3CX do aktualizacji swoich certyfikatów 3CX FQDN.
UWAGA: Jeśli nie możesz zapewnić oddzielnych publicznych adresów IP dla wszystkich jednostek MCU i AI w sieci LAN, musisz skorzystać z własnych, niestandardowych domen FQDN.
Własne domeny FQDN z Let’s Encrypt i automatyzacją DNS
To podejście jest odpowiednie, jeśli masz wszystkie trzy maszyny 3CX w sieci LAN i żadna z nich nie jest bezpośrednio dostępna z publicznego internetu. Wymaga to ręcznych ustawień, które wykraczają poza standardową konfigurację 3CX. Na potrzeby tego przykładu przyjmijmy następujące domeny:
- mypbx.example.com
- mymcu.example.com
- myai.example.com
W tym przypadku również należy spełnić konkretne wymagania:
1. Skrypt automatyzacji
W sieci LAN musi znajdować się maszyna ze skryptem automatyzacji, który:
- Wykorzystuje mechanizm Let’s Encrypt DNS-01 challenge.
- Uruchamia się cyklicznie, aby zapewnić odnowienie certyfikatów z odpowiednim wyprzedzeniem.
- Komunikuje się z Let’s Encrypt, wysyłając żądanie odnowienia.
- Komunikuje się z API Twojego dostawcy DNS, aby tworzyć rekordy niezbędne do weryfikacji Let’s Encrypt.
- Zapisuje pobrane pliki certyfikatu (.pem) oraz klucza (.key) w odpowiednim folderze, na przykład:
/etc/letsencrypt/live/mymcu.example.com/fullchain.pem
/etc/letsencrypt/live/mymcu.example.com/privkey.pem2. Skrypt aktualizacji certyfikatu
Następnie potrzebny będzie skrypt aktualizujący certyfikat, który:
- Sprawdza dostępność nowych plików certyfikatów.
- W przypadku ich znalezienia, kopiuje je do właściwych lokalizacji docelowych.
- Usuwa pliki źródłowe, aby uniknąć niepotrzebnego kopiowania przy każdym uruchomieniu.
Poniżej znajduje się przykładowy skrypt dla maszyny mymcu.example.com, który możesz zapisać jako „/root/certupdate.sh” (analogicznie dla 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.*Nadaj skryptowi odpowiednie uprawnienia:
chmod +x /root/certupdate.sh…i dodaj go do swojego harmonogramu crontab, aby uruchamiał się np. codziennie o 3:00 nad ranem.
Własna domena FQDN – ręczne odnawianie certyfikatu
Jeśli w Twoim przypadku możliwe jest jedynie ręczne odnawianie certyfikatów (np. Twój dostawca DNS nie oferuje API do automatyzacji lub korzystasz z certyfikatów typu wildcard), procedura wygląda niemal identycznie jak powyżej. Różnica polega na tym, że musisz samodzielnie wprowadzać zmiany, rezygnując z zalet automatyzacji.
Alternatywne urzędy certyfikacji (CA)
W przypadku korzystania z usług innych urzędów niż Let’s Encrypt, przygotowaliśmy ogólny przewodnik z poradami, jak wybrać odpowiedniego dostawcę – znajdziesz go tutaj.



