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.

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/acmecom o URL do diretório ACME da sua CAYOUR_EAB_KIDcom a ID da chaveYOUR_EAB_HMAC_KEYcom 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:
- 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. - 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

