bg-tutorials

Como instalar um certificado ACME SSL em servidores de e-mail

Neste guia, você aprenderá a instalar um certificado ACME SSL em servidores de e-mail, especificamente Postfix, Dovecot e, opcionalmente, Exim, usando provedores comerciais que suportam ACME + EAB. Usaremos o acme.sh para registrar sua conta ACME, emitir um certificado para seu nome de host de e-mail e, em seguida, conectar esse certificado diretamente à configuração TLS do seu servidor de e-mail.

Servidores de correio ACME SSL

Este guia pressupõe um servidor de e-mail baseado em Linux e uma CA comercial que fornece um URL de diretório ACME juntamente com credenciais EAB (Key ID + HMAC). Como os ambientes de e-mail diferem entre as distribuições e as configurações de hospedagem, considere este guia como um modelo claro e confiável, mas sempre verifique os caminhos, os nomes de serviço e as configurações de TLS do seu próprio servidor à medida que você avança.


Antes de você começar

Você terá uma experiência muito mais tranquila se esses princípios básicos estiverem prontos:

  • Um nome de host de e-mail, por exemplo, mail.example.com, com um registro A/AAAA apontando para o seu servidor de e-mail
  • Seu registro MX apontando para esse nome de host (configuração comum)
  • Acesso shell/SSH ao servidor de e-mail com sudo ou root
  • Uma conta de CA comercial que fornece um URL de diretório ACME(por exemplo, https://acme.yourca.com/v2/acme), ID de chave EAB e chave HMAC EAB
  • Pilha de correio eletrônico: Postfix/Exim para SMTP e Dovecot para IMAP/POP3

Usaremos a validação DNS-01 porque ela funciona mesmo quando o seu servidor de e-mail não executa um site público e geralmente é preferida na produção.


Etapa 1: instalar o acme.sh no servidor de e-mail

Você instalará o cliente ACME diretamente no servidor de e-mail para que ele possa renovar os certificados e gravá-los no disco onde o Postfix/Dovecot/Exim possa lê-los.

No servidor de correio eletrônico:

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

Se você vir um número de versão, o cliente está instalado e pronto. Se a linha source ~/.bashrc não funcionar, faça logout e login novamente e, em seguida, execute acme.sh --version novamente.


Etapa 2: Registre sua conta ACME (com EAB)

Em seguida, você precisa registrar sua conta ACME com sua CA comercial usando as credenciais EAB do painel dela. acme.sh oferece suporte a EAB via --eab-kid e --eab-hmac-key.

Execute isso no servidor de correio eletrônico:

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

Substituir:

  • https://acme.yourca.com/v2/acme com o URL do diretório ACME da sua CA
  • YOUR_EAB_KID com a ID da chave
  • YOUR_EAB_HMAC_KEY com a chave HMAC
  • [email protected] com seu e-mail real de administrador para avisos de expiração

Você deve fazer isso uma vez por conta. Se o comando falhar, quase sempre é um erro de digitação nos valores de URL ou EAB.


Etapa 3: Emitir o certificado via DNS-01

Agora você solicita um certificado para o nome de host ao qual seus usuários se conectarão, por exemplo, mail.example.com (ou imap.example.com, smtp.example.com. Basta escolher o que você realmente usa nas configurações do cliente).

Emitir o certificado (DNS manual)

Você pode correr:

acme.sh --issue \
  -d mail.example.com \
  --dns dns_manual \
  --server https://acme.yourca.com/v2/acme

--dns dns_manual informa acme.sh que você adicionará registros TXT manualmente no seu painel DNS.

O cliente produzirá algo como:

Please add a TXT record:
_acme-challenge.mail.example.com → some-long-token-value

Adicione o registro TXT

No painel do seu provedor de DNS, crie um registro TXT:

  • Nome: _acme-challenge.mail.example.com
  • Valor: o token mostrado por acme.sh

Aguarde alguns minutos para que o DNS se propague e, em seguida, verifique com:

dig TXT _acme-challenge.mail.example.com +short

Se você vir o token lá, execute o comando acme.sh --issue novamente para concluir a validação. Se você for bem-sucedido, o acme.sh armazenará seus arquivos em ~/.acme.sh/mail.example.com/.

Dentro desse diretório, você terá pelo menos:

  • fullchain.cer – certificado mais cadeia intermediária
  • mail.example.com.key – chave privada
  • ca.cer – Certificados da CA (se a sua CA os fornecer separadamente)

Você os usará nas próximas etapas.


Etapa 4: configurar o Postfix para usar o certificado ACME (SMTP)

O Postfix precisa saber onde estão o novo certificado e a chave. O TLS no Postfix é controlado por opções como smtpd_tls_cert_file e smtpd_tls_key_file.

Primeiro, copie os arquivos para um local estável, por exemplo:

sudo mkdir -p /etc/ssl/mail
sudo cp ~/.acme.sh/mail.example.com/fullchain.cer /etc/ssl/mail/mail-fullchain.cer
sudo cp ~/.acme.sh/mail.example.com/mail.example.com.key /etc/ssl/mail/mail.key
sudo chown root:root /etc/ssl/mail/*
sudo chmod 600 /etc/ssl/mail/mail.key

Em seguida, diga ao Postfix para usá-los:

sudo postconf -e 'smtpd_use_tls = yes'
sudo postconf -e 'smtpd_tls_security_level = may'
sudo postconf -e 'smtpd_tls_cert_file = /etc/ssl/mail/mail-fullchain.cer'
sudo postconf -e 'smtpd_tls_key_file = /etc/ssl/mail/mail.key'
sudo postconf -e 'smtp_tls_security_level = may'
  • smtpd_* as configurações controlam os e-mails recebidos (clientes que enviam e-mails para você)
  • smtp_* as configurações controlam o correio de saída (seu servidor envia correio para outros)

Aplique as alterações:

sudo systemctl restart postfix

Se a sua distribuição ainda usa service, ajuste o comando de acordo.


Etapa 5: configurar o Dovecot para usar o certificado ACME (IMAP/POP3)

O Dovecot lida com IMAP e POP3. Você configura o TLS apontando ssl_cert e ssl_key para os mesmos arquivos que acabamos de preparar.

Abra a configuração SSL do Dovecot:

sudo nano /etc/dovecot/conf.d/10-ssl.conf

Atualize (ou adicione) essas linhas:

ssl = yes
ssl_cert = </etc/ssl/mail/mail-fullchain.cer
ssl_key  = </etc/ssl/mail/mail.key

Salve o arquivo e recarregue o Dovecot:

sudo systemctl restart dovecot

Agora, o IMAP/POP3 por TLS apresentará o mesmo certificado comercial da ACME.


Opcional: Use o mesmo certificado no Exim

Se você usar o Exim como servidor de e-mail em vez do Postfix, a integração será semelhante. O Exim usa as opções tls_certificate e tls_privatekey para TLS.

Na sua configuração do Exim (o caminho depende da distribuição, geralmente /etc/exim4/exim4.conf.template ou split config em /etc/exim4/conf.d/), defina:

tls_certificate = /etc/ssl/mail/mail-fullchain.cer
tls_privatekey  = /etc/ssl/mail/mail.key

Em seguida, recarregue o Exim:

sudo systemctl restart exim4

Verifique os documentos do pacote de distribuição se o nome do serviço for ligeiramente diferente.


Etapa 6: Teste o TLS do seu e-mail

Você pode testar em qualquer outra máquina que tenha o OpenSSL instalado.

Teste o SMTP (Postfix ou Exim)

openssl s_client -starttls smtp -connect mail.example.com:587 -showcerts

Teste IMAP (Dovecot)

openssl s_client -starttls imap -connect mail.example.com:143 -showcerts

Se a saída mostrar sua CA comercial e o nome do host corresponder, você está pronto.


Etapa 7: Mantenha a renovação e a recarga automatizadas

acme.sh já instala um trabalho cron que verifica as renovações diariamente. Quando seu certificado estiver perto de expirar, ele será renovado automaticamente e atualizará os arquivos em ~/.acme.sh/mail.example.com/.

Para fazer com que o Postfix/Dovecot/Exim sempre use a versão mais recente, você tem duas opções:

  1. Aponte as configurações diretamente para os arquivos em ~/.acme.sh/mail.example.com/
    (por exemplo, smtpd_tls_cert_file = /root/.acme.sh/mail.example.com/fullchain.cer) e garanta que somente o root possa lê-los.
  2. Escreva um pequeno script de implementação que copie os arquivos renovados para /etc/ssl/mail/ e reinicie ou recarregue o servidor.

Exemplo de um script:

#!/usr/bin/env bash
DOMAIN="mail.example.com"
SRC="$HOME/.acme.sh/$DOMAIN"
DEST="/etc/ssl/mail"

sudo cp "$SRC/fullchain.cer" "$DEST/mail-fullchain.cer"
sudo cp "$SRC/$DOMAIN.key"   "$DEST/mail.key"
sudo chown root:root "$DEST/"*
sudo chmod 600 "$DEST/mail.key"

sudo systemctl restart postfix dovecot

Esse script copia o certificado ACME recém-emitido e a chave privada para o diretório SSL de email do servidor, define a propriedade e as permissões corretas e, em seguida, reinicia o Postfix e o Dovecot para que eles comecem a usar imediatamente o certificado atualizado. Use suas credenciais em vez dos espaços reservados.

Em seguida, conecte-o em acme.sh:

acme.sh --install-cert -d mail.example.com \
  --key-file       ~/.acme.sh/mail.example.com/mail.example.com.key \
  --fullchain-file ~/.acme.sh/mail.example.com/fullchain.cer \
  --reloadcmd "/path/to/your/deploy-script.sh"

A partir daí, as renovações ocorrerão automaticamente.


Perguntas comuns e solução de problemas

Alguns problemas podem surgir quando você fizer isso pela primeira vez. Veja a seguir como você pode lidar com eles rapidamente.

Por que a validação do ACME falha com “não autorizado” ou “resposta inválida”?

Isso acontece quando a CA não consegue verificar o registro TXT do seu DNS. Verifique isso:

  • O registro TXT é exatamente _acme-challenge.mail.example.com
  • O token não tem aspas ou espaços extras
  • O DNS se propagou (dig TXT _acme-challenge.mail.example.com +short)
  • Você não confundiu mail.example.com com example.com

Se não tiver certeza, exclua o registro TXT, execute novamente o site acme.sh --issue e adicione novamente o valor exato que a ACME fornecer a você.

Por que estou recebendo erros do tipo “accountDoesNotExist” ou relacionados ao EAB?

Eles aparecem quando o registro da sua conta ACME não corresponde às credenciais EAB da sua CA.

Fixado por:

  • Verificar novamente o URL do diretório ACME (produção vs. teste)
  • Garantir que a ID da chave e o HMAC sejam copiados exatamente, sem espaços ocultos
  • Reexecutar o comando de registro uma vez com os valores corretos

As ACs comerciais rejeitam qualquer registro de EAB que não corresponda ao perfil emitido.

Por que o SMTP/IMAP ainda mostra o certificado antigo?

Isso significa que o serviço não recarregou o novo certificado ou está lendo de um caminho diferente. Verifique:

  • Os caminhos de TLS no Postfix/Dovecot/Exim correspondem aos arquivos reais
  • Você reiniciou o serviço correto (systemctl restart postfix dovecot exim4)
  • Nenhuma segunda instância, contêiner ou proxy está servindo o certificado antigo

Você pode verificar o certificado ativo usando:

openssl s_client -connect mail.example.com:465 -servername mail.example.com

Palavras finais

Com essa configuração, o seu servidor de e-mail apresenta um certificado ACME comercial adequado aos clientes SMTP e IMAP/POP3, enquanto o acme.sh cuida discretamente das renovações em segundo plano. Você mantém controle total sobre a cadeia de certificados e os nomes de arquivos, seus usuários param de ver avisos de segurança e você não precisa fazer login a cada poucos meses para carregar novos arquivos manualmente.

Depois de fazer isso uma vez, você pode repetir o mesmo padrão para outros nomes de host, servidores MX secundários ou pilhas de correio adicionais usando a mesma conta e o mesmo processo do ACME.

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.

Avatar of Sergiu Rosca
Technical Review by Sergiu Rosca

Sergiu Rosca is the core web developer behind SSL Dragon. He manages the technical infrastructure, platform performance, and backend integrations that keep the site running smoothly and securely. At SSL Dragon, Sergiu shares practical insights on web development, site optimization, and technical troubleshooting.

All SSL Dragon installation guides are tested on live server environments and undergo a strict peer-review process to ensure your infrastructure remains secure. Read our full Editorial Policy.