bg-tutorials

Como instalar um certificado ACME SSL no FortiGate

Este guia mostra como instalar e automatizar certificados SSL nos firewalls FortiGate usando o protocolo ACME com External Account Binding (EAB), o método padrão que as autoridades de certificação comerciais usam para automação segura.

Frotigate ACME SSL

Você aprenderá duas maneiras de implementar:

  1. Integração nativa do FortiGate ACME com credenciais EAB
  2. Emissão externa com ACME.sh, seguida de importação para o FortiGate

Ambos os métodos são compatíveis com os endpoints ACME comerciais que emitem certificados por meio da autenticação KID + HMAC.


Antes de você começar

Você precisará de:

  • FortiGate 7.6.0 ou mais recente (versões anteriores não são compatíveis com EAB)
  • Acesso de administrador ou raiz à CLI do FortiGate
  • URL do diretório ACME do seu provedor de certificados
  • Credenciais do EAB (ID da chave + chave HMAC)
  • Um nome de domínio com registros DNS A/AAAA válidos apontando para o IP público do FortiGate
  • Porta 80 acessível pela Internet para validação do HTTP-01

Etapa 1: Verifique a versão do firmware

Use a interface de linha de comando para verificar a versão do FortiOS:

get system status

Certifique-se de que o FortiOS 7.6.0 ou mais recente seja exibido. Caso contrário, faça a atualização primeiro. As versões mais antigas não incluem os campos acme-eab-key-id e acme-eab-key-hmac.


Etapa 2: criar um objeto de certificado local para o ACME

Execute o comando abaixo:

config vpn certificate local
    edit "acme-vpn-cert"
        set enrollment acme
        set acme-ca-url "https://acme.yourca.com/v2/acme"
        set acme-eab-key-id "YOUR_EAB_KID"
        set acme-eab-key-hmac "YOUR_EAB_HMAC_KEY"
        set acme-email "[email protected]"
        set acme-domain "vpn.example.com"
        set acme-auth-url "http://vpn.example.com/.well-known/acme-challenge"
        set auto-regenerate-days 30
        set auto-regenerate enable
    next
end

Esse comando cria um novo objeto de certificado local chamado acme-vpn-cert e diz ao FortiGate para solicitá-lo e renová-lo automaticamente de sua CA comercial usando o protocolo ACME com External Account Binding.

Explicação das partes principais:

  • set enrollment acmeSe você não tiver um certificado de segurança, poderá usar o ACME para gerenciá-lo. Você pode usar o ACME para gerenciá-lo.
  • set acme-ca-urlSe você tiver uma autoridade de certificação, clique em: o ponto de extremidade do diretório ACME de sua autoridade de certificação.
  • set acme-eab-key-id / set acme-eab-key-hmac: suas credenciais de EAB (KID e HMAC) que autorizam sua conta com a CA.
  • set acme-email: usado para notificações de renovação e contato com a CA.
  • set acme-domainSe você não tiver um domínio, poderá usar o seguinte: o domínio que o FortiGate validará e protegerá.
  • set acme-auth-url: o local HTTP em que a CA coloca e verifica o desafio ACME.
  • set auto-regenerate e auto-regenerate-days: ativar a renovação automática antes do vencimento.

Etapa 3: Verifique o caminho de validação

Seu FortiGate deve responder a http://vpn.example.com/.well-known/acme-challenge/.

Se você tiver o redirecionamento de HTTPS ativado, adicione uma regra de desvio para que o caminho do desafio permaneça em HTTP simples durante a validação.

Veja como você pode fazer isso em servidores virtuais:

config firewall vip
    edit "acme-http"
        set extintf "wan1"
        set extip <your-public-ip>
        set mappedip "192.168.1.99"
        set extport 80
        set mappedport 80
        set protocol tcp
    next
end

Substitua <your-public-ip> e 192.168.1.99 por seus endereços IP externos e internos reais. Esses valores são marcadores de posição usados apenas como exemplo.


Etapa 4: acionar a solicitação inicial

Agora que o FortiGate sabe como chegar à sua CA e onde colocar os arquivos de validação, você pode iniciar o processo real de registro do certificado:

execute vpn certificate local generate "acme-vpn-cert"

Esse comando diz ao FortiGate para entrar em contato com a CA, realizar a validação do domínio e recuperar o certificado assinado automaticamente.


Etapa 5: Verifique o status do certificado

Para verificar o status do seu certificado, execute o seguinte comando:

get vpn certificate local

Você deveria ver:

Status: valid
Issuer: Your CA Name

Se o status permanecer pendente ou inválido, verifique novamente a capacidade de alcance do DNS e da porta 80.


Etapa 6: Aplicar o certificado

Use a GUI ou a CLI para atribuí-la a SSL VPN, gerenciamento de HTTPS ou serviços de proxy:

config vpn ssl settings
    set servercert "acme-vpn-cert"
end

Veja como você pode fazer isso por meio da GUI:

Acesse VPN > SSL-VPN Settings > Server Certificate > Selecione acme-vpn-cert.


Etapa 7: Solução de problemas e renovações

Se o certificado não for emitido imediatamente, os motivos mais comuns são:

  • O servidor ACME não conseguiu acessar seu URL de validação (porta aberta 80).
  • Sua chave KID ou HMAC não corresponde ao que a CA espera.
  • Você atingiu um limite temporário de reprodução ou de taxa; basta tentar novamente após alguns minutos.

Quando o certificado for válido, o FortiGate tratará das renovações automaticamente com base em sua configuração auto-regenerate-days. Você pode testar a renovação a qualquer momento com:

execute vpn certificate local renew "acme-vpn-cert"

Fallback: Emissão externa (ACME.sh) e importação para o FortiGate

Se o ponto de extremidade ACME da sua CA não funcionar diretamente com o FortiGate, você poderá emitir o certificado externamente com o ACME.sh e importá-lo. Veja como você pode fazer isso:

Etapa 1: instalar o ACME.sh

Execute esses comandos em qualquer sistema Linux, macOS ou BSD que tenha acesso à Internet. Você não está executando isso no próprio FortiGate (o FortiGate não oferece suporte a scripts de shell personalizados).

curl https://get.acme.sh | sh
source ~/.bashrc

Isso instala o cliente acme.sh em seu diretório pessoal e o carrega no shell. Substitua o espaço reservado por sua CA e detalhes reais.

Etapa 2: Registre sua conta ACME no EAB

acme.sh --register-account \
  --server https://acme.yourca.com/v2/acme \
  --eab-kid "YOUR_EAB_KID" \
  --eab-hmac-key "YOUR_EAB_HMAC_KEY" \
  -m [email protected]

Etapa 3: Emitir o certificado

acme.sh --issue \
  -d vpn.example.com \
  --webroot /var/www/html \
  --server https://acme.yourca.com/v2/acme \
  --eab-kid "YOUR_EAB_KID" \
  --eab-hmac-key "YOUR_EAB_HMAC_KEY"

Etapa 4: Localize os arquivos de certificado

Após uma emissão bem-sucedida, os arquivos de certificado são armazenados no seu diretório pessoal em ~/.acme.sh/vpn.example.com/

Dentro dessa pasta, você encontrará:

  • fullchain.cer – a cadeia de certificados completa
  • vpn.example.com.key – sua chave privada
  • ca.cer – o certificado da CA intermediária

Você pode abri-los com um editor de texto ou verificar os detalhes por meio do OpenSSL:

openssl x509 -in fullchain.cer -noout -dates -issuer -subject

Etapa 5: Importar para o FortiGate

Você pode importar o certificado por meio da GUI:

Vá para: Sistema > Certificados > Importar > Certificado local e
carregar o certificado e a chave privada.

Ou você pode usar a CLI:

config vpn certificate local
    edit "acme-vpn-cert"
        set private-key "-----BEGIN PRIVATE KEY-----..."
        set certificate "-----BEGIN CERTIFICATE-----..."
    next
end

Etapa 6: Atribuir e renovar

Depois que o certificado for renovado, certifique-se de reatribuí-lo à VPN SSL ou à interface da Web do FortiGate (se ele não for aplicado automaticamente). Se você estiver usando um cliente ACME externo em um servidor diferente, configure uma tarefa agendada (como um trabalho cron) para copiar automaticamente os novos arquivos de certificado para o FortiGate, usando SCP ou uma chamada de API.

Exemplo:

scp ~/.acme.sh/vpn.example.com/fullchain.cer admin@fortigate:/root/
scp ~/.acme.sh/vpn.example.com/vpn.example.com.key admin@fortigate:/root/

Em seguida, recarregue o certificado:

execute vpn certificate local import "acme-vpn-cert"

Perguntas comuns

Se você estiver configurando o ACME com uma AC comercial pela primeira vez, algumas perguntas tendem a surgir. Aqui estão respostas rápidas para as que você vê com mais frequência:

Posso usar essa configuração com qualquer CA comercial?

Sim, desde que seu provedor ofereça suporte a ACME + External Account Binding (EAB). As principais CAs, como Sectigo e DigiCert, já fornecem URLs de diretório ACME e credenciais EAB.

Preciso abrir as portas HTTP e HTTPS para validação?

Somente a porta 80 (HTTP) é necessária para a validação HTTP-01 do ACME. Mantenha a HTTPS (443) aberta para o tráfego normal, mas não redirecione as solicitações de validação de HTTP para HTTPS.

O que acontece se meu certificado não for renovado automaticamente?

Você pode acionar a renovação manual a qualquer momento com:

execute vpn certificate local renew "acme-vpn-cert"

Se ainda assim falhar, verifique novamente as credenciais do EAB, o DNS do domínio e se o firewall ainda permite o acesso de saída ao endpoint ACME da CA.

Posso usar as mesmas credenciais de EAB em vários FortiGates?

Isso depende de sua CA. Algumas permitem a reutilização de uma conta para vários dispositivos, outras emitem credenciais exclusivas por pedido ou domínio. Sempre siga a política da sua CA para evitar limites de taxa ou conflitos de conta.


Palavras finais

Agora você sabe como instalar um certificado ACME SSL no FortiGate, seja por meio da integração nativa do EAB ou da emissão externa via ACME.sh.

Ambos os métodos atendem aos padrões de segurança corporativa e suportam renovações totalmente automatizadas com autoridades de certificação comerciais.

Economize 10% em certificados SSL ao fazer seu pedido hoje!

Emissão rápida, criptografia forte, 99,99% de confiança no navegador, suporte dedicado e garantia de reembolso de 25 dias. Código do cupom: SAVE10

Uma imagem detalhada de um dragão em voo
Escrito por

Redator de conteúdo experiente, especializado em certificados SSL. Transformação de tópicos complexos de segurança cibernética em conteúdo claro e envolvente. Contribua para melhorar a segurança digital por meio de narrativas impactantes.