Implantação de várias MCUs 3CX e mecanismos de transcrição por IA em uma única LAN.

Ao executar várias instâncias de serviços que exigem FQDNs voltados para o público e certificados SSL, o gerenciamento dos certificados pode ser um desafio.

Para fornecer exemplos significativos do que pode e do que não pode ser alcançado, usaremos um cenário comum como ponto de partida e, em seguida, abordaremos como as variações afetam sua estratégia de gerenciamento de certificados SSL.

A Exemplo de Configuração Comum

Para explicar melhor, vamos considerar uma configuração com três máquinas dentro da mesma LAN local:

  • 3CX PhoneSystem – Endereço IP 192.168.0.10
  • 3CX On-Board MCU – Endereço IP 192.168.0.20
  • 3CX On-Board AI – Endereço IP 192.168.0.30

FQDNs Fornecidos pela 3CX

A implantação padrão do 3CX usa um cliente ACME personalizado para provisionar e renovar automaticamente os certificados Let’s Encrypt. Esse método vincula o certificado diretamente à instalação do 3CX e ao FQDN. Existem 3 requisitos, conforme descrito abaixo:

1. Endereços IP Públicos Dedicados

Para que esta configuração funcione, cada uma dessas 3 máquinas precisará de um endereço IP público dedicado; considere este exemplo:

FQDN Sistema Endereço IP LAN Endereço IP Público
mypbx.3cx.com.cy 3CX PhoneSystem 192.168.0.10 20.20.20.20
mymcu.my3cx.net (autoatribuído) 3CX On-Board MCU 192.168.0.20 20.20.20.21
myai.my3cx.net (autoatribuído) 3CX On-Board AI 192.168.0.30 20.20.20.22

2. DNS Dividido

Seu servidor DNS da LAN deve ser configurado para garantir que:

  • Dentro da LAN, seus FQDNs sejam resolvidos para seus Endereços IP de LAN
  • Fora da LAN, seus FQDNs sejam resolvidos para seus Endereços IP PÚBLICOS

A maneira mais simples de fazer isso é criando registros A (ou AAAA) específicos para FQDNs para suas máquinas da LAN, onde seu Servidor DNS local está configurado da seguinte forma:

  • FQDN: mypbx.3cx.com.cy – 3CX PhoneSystem – Endereço IP 192.168.0.10
  • FQDN: mymcu.my3cx.net – 3CX On-Board MCU – Endereço IP 192.168.0.20
  • FQDN: myai.my3cx.net – 3CX On-Board AI – Endereço IP 192.168.0.30

Essas configurações são referidas por nomes diferentes, incluindo:

  • Zonas DNS Pinpoint
  • Zona de Política de Resposta (RPZ)
  • DNS de Horizonte Dividido ou Visualizações
  • Zonas de Sombra

3. Redirecionamento de Porta para Atualização Automática de Certificados

Você precisará configurar seu firewall ou roteador de borda para:

  • Encaminhar todo o tráfego (para mymcu.my3cx.net) de 20.20.20.21:80 para 192.168.0.20:80
  • Encaminhar todo o tráfego (para mymcu.my3cx.net) de 20.20.20.22:80 para 192.169.0.30:80

Isso permitirá que o Let’s Encrypt acesse sua máquina para atualizações de certificados.

O 3CX PhoneSystem (mypbx.3cx.com.cy) não requer esse encaminhamento de porta, pois utiliza a Infraestrutura Em Nuvem do 3CX para atualizar seus certificados FQDN do 3CX.

NOTA: Se você não puder fornecer Endereços IP Públicos distintos para todas as suas máquinas MCU e/ou IA na LAN, então você DEVE usar seus próprios FQDNs personalizados.

FQDNs Personalizados usando o Let’s Encrypt com automação de DNS

Essa abordagem é adequada se você tiver todas as três máquinas 3CX na LAN e nenhuma delas for diretamente acessível pela internet pública. Isso requer uma configuração manual além da configuração padrão do 3CX. Para fins deste exemplo, assumiremos os seguintes FQDNs:

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

Como antes, há requisitos a serem seguidos, descritos abaixo:

1. Script de Automação

Você precisará criar um script de automação em alguma máquina na LAN que:

  • Utilize o mecanismo de desafio DNS-01 do Let’s Encrypt
  • Seja executado periodicamente para garantir que você renove os certificados com antecedência
  • Se comunique com o Let’s Encrypt para solicitar a renovação do certificado
  • Se comunique com a API do seu provedor de DNS para criar registros conforme necessário para a verificação do Let’s Encrypt
  • Salve o arquivo PEM do certificado baixado e o arquivo KEY em uma pasta; por exemplo:
/etc/letsencrypt/live/mymcu.example.com/fullchain.pem
/etc/letsencrypt/live/mymcu.example.com/privkey.pem

2. Script de Atualização de Certificado

Em seguida, você precisará criar um script de atualização de certificado que:

  • Verifique se há novos arquivos de certificado
  • Se os encontrar, os copie para os destinos corretos
  • Exclua os arquivos de origem para evitar copiá-los novamente desnecessariamente sempre que for executado

Aqui está um exemplo de script para a máquina mymcu.example.com, que você pode salvar em “/root/certupdate.sh”:

#!/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.*

Defina as permissões corretas para o script:

chmod +x /root/certupdate.sh

…e adicione-o ao seu crontab para ser executado, por exemplo, todas as madrugadas às 3h.

FQDN Personalizado – Renovação Manual de Certificado

Se você estiver limitado à renovação manual de certificados, por exemplo, porque seu provedor de DNS não possui APIs para automação, e também possivelmente porque está usando certificados curinga, o procedimento é essencialmente o mesmo descrito acima, exceto que você mesmo deve realizar as alterações, aproveitando os benefícios da automação.

Autoridade Certificadora Alternativa

Para CAs diferentes da Let’s Encrypt, fornecemos um guia geral com orientações sobre como selecionar qual usar aqui.