Capítulo 42 – Certificados SSL ACME
Introdução
A segurança da comunicação na Internet moderna depende diretamente do uso de certificados digitais SSL/TLS. Esses certificados permitem estabelecer conexões criptografadas e autenticadas entre clientes e servidores, garantindo confidencialidade, integridade e autenticidade das informações trocadas.
No contexto do OPNsense, os certificados SSL têm papel fundamental em diversas frentes:
- Proxy Reverso (NGINX) – para publicar sites e sistemas internos com HTTPS válido.
- WebGUI do Firewall – para acessar o painel de administração de forma segura.
- Captive Portal – para oferecer autenticação segura a visitantes ou usuários de rede.
- Serviços de VPN e autenticação – em conexões remotas onde a verificação de identidade é crucial.
O OPNsense integra-se à Let's Encrypt, uma Autoridade Certificadora gratuita e automatizada que segue o protocolo ACME (Automatic Certificate Management Environment). Com o plugin os-acme-client, o próprio firewall é capaz de emitir, renovar e instalar certificados válidos automaticamente, sem depender de processos manuais ou de compras em provedores comerciais.
Este capítulo mostrará como configurar o plugin ACME no OPNsense para emitir certificados SSL válidos e automatizar sua renovação, assegurando que os serviços internos e externos operem sempre sob conexões seguras.
Entendendo o Protocolo ACME e a Let's Encrypt
Antes de entrarmos na configuração prática, é importante compreender o que acontece “por trás dos bastidores”.
O protocolo ACME é o mecanismo que permite que clientes (como o OPNsense) comprovem automaticamente a posse de um domínio perante a Let's Encrypt. Para isso, ele executa um processo de validação (challenge) que confirma que o domínio realmente aponta para o servidor que solicita o certificado.
Existem diversos tipos de validação, mas o mais comum — e o que utilizaremos aqui — é o HTTP-01 Challenge. Nesse método, o OPNsense cria temporariamente um pequeno arquivo de verificação acessível via HTTP (porta 80). A Let's Encrypt então faz uma requisição a esse arquivo; se ela conseguir lê-lo, confirma que o domínio é legítimo e emite o certificado SSL.
Sobre o Projeto Let's Encrypt
A Let's Encrypt é amplamente aceita e apoiada por empresas como Mozilla, Google, Cisco e Cloudflare. Seus certificados são reconhecidos por todos os navegadores modernos e podem ser renovados automaticamente a cada 90 dias, sem custo algum.
Pré-Requisitos
Antes de configurar o ACME Client, certifique-se de que o ambiente cumpre os seguintes requisitos:
- Domínio válido registrado no provedor DNS (exemplo:
intranet.citrait.com.br). - O domínio deve estar apontando para o IP público do firewall OPNsense.
- As portas 80 (HTTP) e 443 (HTTPS) devem estar liberadas e redirecionadas para o firewall.
- O firewall não pode estar atrás de CGNAT (Carrier-Grade NAT).
Se o endereço IP recebido estiver na faixa
100.64.0.0/10, significa que há CGNAT e a validação externa não será possível. - Caso o modem do provedor esteja em modo roteado, é necessário configurar o port forwarding (DMZ do modem) das portas 80 e 443 para o OPNsense.
Importante
O processo de emissão depende do acesso externo ao domínio. Se a Let's Encrypt não conseguir se comunicar com o firewall pela Internet, a validação do certificado falhará.
Alternativas
O processo de validação (challenge) não precisa ser obrigatoriamente via HTTP. Você também pode usar o desafio DNS que permite a emissão de certificados mesmo sem o firewall estar aberto para a internet. Entretanto, aqui abordaremos o método HTTP que é o mais comum e não requer um provedor de DNS como Cloudflare, Azure, entre outros que fornecem APIs avançadas.
Etapa 1 – Instalar e Ativar o Plugin ACME Client
-
Acesse o menu System → Firmware → Plugins.
-
Localize e instale o plugin os-acme-client.
-
Após a instalação, atualize a página (F5) para que o novo menu seja exibido.
-
Vá em Services → ACME Client → Settings e configure conforme abaixo:
- Enable Plugin: habilitar
- Auto Renewal: habilitar
- Show Introduction Pages: desativar (opcional, apenas para simplificar o painel)
-
Clique em Apply.
Importante
Habilitar a opção Auto Renewal garante que o OPNsense renove automaticamente os certificados antes da expiração, sem necessidade de intervenção manual.
Etapa 2 – Registrar uma Conta com a Let's Encrypt
A conta ACME é o identificador usado pelo OPNsense para se comunicar com a Let's Encrypt.
-
Vá em Services → ACME Client → Accounts.
-
Clique em + Add, preencha os dados abaixo e clique em Save.
Campo Valor sugerido Name Nome da empresa ou do ambiente (ex.: CITRAIT) Description Conta para emissão de certificados ACME E-mail Endereço de contato válido (obrigatório) -
Após salvar, na coluna Commands, clique em Register Account.
-
Confirme com Yes e aguarde o status mudar de unknown para OK (registered).
Importante
Esse registro é feito diretamente com os servidores da Let's Encrypt e é gratuito. O e-mail informado será usado apenas para notificações importantes, como expiração ou problemas de emissão.
Etapa 3 – Criar o Challenge (Validação do Domínio)
A próxima etapa é configurar o tipo de desafio (challenge) que o firewall usará para comprovar o domínio.
-
Vá em Services → ACME Client → Challenge Types.
-
Clique em + Add e configure conforme o exemplo abaixo:
Campo Valor Name http-challengeChallenge Type HTTP-01HTTP Service OPNsense Web Service (automatic port forward)IP Auto-Discovery habilitado Interface Interface WAN (ou o link de Internet principal) -
Clique em Save.
Desafio HTTP-01
O HTTP-01 é o método mais simples e automatizado. O OPNsense cria uma regra temporária de redirecionamento da porta 80 para a porta da WebGUI para atender a requisição de validação vinda da Let's Encrypt.
Etapa 4 – Emitir o Certificado SSL
-
Vá em Services → ACME Client → Certificates.
-
Clique em + Add e preencha:
- Common Name: Nome do domínio - exemplo:
intranet.citrait.com.br - ACME Account: Selecione a conta criada anteriormente
- Challenge Type:
http-challenge
- Common Name: Nome do domínio - exemplo:
-
Clique em Save.
-
Após salvar, clique em Issue/Renew All Certificates.
-
Aguarde alguns instantes até o processo de validação e emissão ser concluído.
Se tudo ocorrer corretamente, o status do certificado aparecerá como OK, com a data de emissão exibida.
Erro comum: NXDOMAIN
Caso apareça o erro Verification error details: DNS problem: NXDOMAIN, verifique se o domínio realmente existe no provedor DNS e se o IP público do firewall está corretamente associado ao nome de domínio.
Etapa 5 – Renovação Automática
Os certificados da Let's Encrypt são válidos por 90 dias. O plugin ACME no OPNsense pode cuidar da renovação automática.
- Vá em Services → ACME Client → Settings.
- Acesse a guia Update Schedule.
- Confirme o horário de execução da renovação (por padrão, diariamente à meia-noite).
- Clique em Save e depois em Apply.
Importante
É recomendável manter a verificação diária. O ACME renovará apenas quando o certificado estiver a menos de 30 dias da expiração.
Aplicando o Certificado Emitido
Depois que o certificado é emitido e validado, ele pode ser aplicado a diversos serviços do OPNsense.
1. WebGUI do Firewall
- Vá em System → Settings → Administration.
- No campo SSL Certificate, selecione o certificado recém-criado.
- Clique em Save.
- Acesse o painel pela URL HTTPS com o hostname correspondente ao certificado (ex.: https://intranet.citrait.com.br).
Importante
Evite acessar a WebGUI diretamente por IP após aplicar o certificado, pois o navegador exibirá aviso de segurança se a URL não corresponder ao nome do certificado.
2. Proxy Reverso (NGINX)
Se estiver utilizando o NGINX Reverse Proxy, o certificado ACME pode ser atribuído aos frontends HTTPS criados para sites internos.
- Vá em Services → NGINX → Configuration → HTTP(S) → HTTP Server.
- Edite o frontend desejado e, no campo TLS Certificate, selecione o certificado ACME.
- Salve e clique em Apply.
3. Captive Portal
- Vá em Services → Captive Portal → Administration.
- Selecione o zone desejado.
- Em HTTPS Server Certificate, escolha o certificado válido emitido pela Let's Encrypt.
- Salve as alterações.
Dessa forma, os usuários não verão mais o alerta de site inseguro ao tentar autenticar-se na rede.
Logs e Diagnóstico
Se a emissão falhar, é possível acompanhar os detalhes em tempo real:
- Vá em Services → ACME Client → Log Files.
- Analise as mensagens de erro e status do processo.
Os logs normalmente indicam claramente se o problema está relacionado a:
- DNS incorreto,
- porta 80 bloqueada,
- ou falha de comunicação externa.
Observações e Boas Práticas
- Portas 80/443 exclusivas: não use simultaneamente a WebGUI e o NGINX nas mesmas portas sem reconfiguração prévia — isso gera conflito.
- Evite certificados autoassinados: embora funcionem internamente, geram avisos de insegurança e reduzem a confiança dos usuários.
- Automatize sempre: deixe o plugin ACME responsável por renovar e substituir certificados expirados automaticamente.
- DNS confiável: mantenha servidores DNS estáveis e com propagação rápida; evite DNS público com cache longo ao testar emissões.
- Monitoramento: revise periodicamente a validade dos certificados em Services → ACME Client → Certificates.
Próximos Passos
Com os certificados SSL emitidos e aplicados corretamente, o ambiente está pronto para operar com comunicações seguras e autenticadas. Os próximos capítulos abordarão como aplicar esses certificados em serviços específicos — como o Proxy Reverso (NGINX).
Conclusão
A configuração do ACME Client no OPNsense permite que o próprio firewall atue como gestor automático de certificados SSL, reduzindo a necessidade de tarefas manuais e eliminando riscos associados a certificados vencidos. Em um mundo cada vez mais conectado, automatizar a confiança digital é uma das melhores práticas de segurança — e o OPNsense oferece essa funcionalidade de forma simples, robusta e gratuita.