Servidor de E-mail · 4 min read · Sep 08, 2025

Segurando seu servidor de e-mail gerenciado pelo ISPConfig 3 com um certificado SSL Let's Encrypt válido

Se você está executando seu próprio servidor de e-mail, é uma boa prática conectá-lo de forma segura com uma conexão SSL/TLS. Você precisará de um certificado válido para essas conexões seguras. Neste tutorial, configuraremos um certificado Let’s Encrypt para nosso servidor de e-mail que renova automaticamente.

Atenção: Este tutorial é baseado neste tutorial: https://www.howtoforge.com/tutorial/securing-ispconfig-3-with-a-free-lets-encrypt-ssl-certificate/ mas modificado para que você tenha um certificado separado para seu servidor de e-mail e painel de controle. Se você já seguiu esse tutorial antes, este tutorial pode quebrar sua configuração.

Este tutorial usa certificados emitidos pelo acme.sh. Se você estiver usando o certbot, siga este tutorial em vez disso: https://www.howtoforge.com/community/threads/securing-your-ispconfig-3-managed-mailserver-with-a-valid-lets-encrypt-ssl-certificate-certbot.86372/

Nota para ISPConfig 3.2: O ISPConfig 3.2 é capaz de criar um certificado SSL Let’s Encrypt válido para o nome do host do servidor automaticamente durante a instalação, que é usado para o servidor de e-mail também. Não há necessidade de criar manualmente um certificado SSL Let’s Encrypt como descrito aqui em sistemas ISPConfig 3.2, a menos que você precise de nomes de domínio diferentes no certificado SSL além do nome do host do servidor.

Pré-requisitos

  • Seu servidor deve estar instalado de acordo com o tutorial do Servidor Perfeito para seu SO.
  • Certifique-se de que você está logado como usuário root.

Começando

Eu usarei os seguintes nomes de host para meu servidor de e-mail: mail.example.com, smtp.example.com, imap.example.com.

Substitua todos os nomes de host sublinhados em vermelho neste tutorial pelos seus próprios.

Crie os registros DNS para seu(s) nome(s) de host, para que eles apontem para seu servidor. Estes devem ser registros A (e eventualmente AAAA). Em seguida, na interface do ISPConfig, vá para a aba Sites.

Emitindo o certificado

Sob Sites, clique em “Adicionar novo site”. Defina mail.example.com como domínio. Desative Subdomínio Automático e marque a caixa Let’s Encrypt.

Depois disso, você pode adicionar seus outros nomes de host como domínios alias, indo para a lista de domínios alias e clicando em “Adicionar novo domínio alias”. Selecione smtp.example.com como domínio e mail.example.com como site pai. Desative Subdomínio Automático e salve o novo registro. Repita isso para seus outros nomes de host, se houver.

Verifique se o certificado está no lugar. Você pode fazer isso com uma ferramenta como https://www.sslshopper.com/ssl-checker.html

Deve parecer algo assim:

Captura de tela da verificação SSL

Se o(s) nome(s) de host estiverem listados e não houver outros erros, você pode prosseguir. Caso contrário, verifique os erros e resolva-os antes de continuar.

Substituindo o certificado pelo certificado Let’s Encrypt

Agora podemos substituir o certificado atual pelo seu certificado confiável. Faça login no seu servidor e execute estes comandos:

(substitua mail.example.com pelo nome do host que você usou para o site)

cd /etc/postfix/  
mv smtpd.cert smtpd.cert-$(date +"%y%m%d%H%M%S").bak  
mv smtpd.key smtpd.key-$(date +"%y%m%d%H%M%S").bak  
ln -s /var/www/mail.example.com/ssl/mail.example.com-le.crt smtpd.cert  
ln -s /var/www/mail.example.com/ssl/mail.example.com-le.key smtpd.key  
systemctl restart postfix  
systemctl restart dovecot

O certificado deve agora ser usado para seu servidor Postfix e Dovecot. Mas ainda não terminamos! O certificado Let’s Encrypt renova a cada 60 dias, então devemos automatizar o processo de substituição do certificado no futuro, para que você não se esqueça dele.

Nós de multiserver sem GUI do ISPConfig

Se este for um nó sem GUI em uma configuração de multiserver do ISPConfig, você deve agora verificar se o próprio ISPConfig tem um certificado SSL. Não faça esta etapa em uma configuração de servidor único ou em um servidor que executa uma GUI do ISPConfig.

Você pode fazer o teste com os seguintes comandos ls:

cd /usr/local/ispconfig/interface/ssl/  
ls ispserver.crt  
ls ispserver.key

O resultado parecerá assim se já houver um certificado:

root@server:/usr/local/ispconfig/interface/ssl# ls ispserver.crt  
ispserver.crt  
root@server:/usr/local/ispconfig/interface/ssl# ls ispserver.key  
ispserver.key

Se os dois comandos ls não retornarem os arquivos ispserver.crt e ispserver.key, então crie-os como links simbólicos para o certificado Let’s Encrypt assim:

ln -s /var/www/mail.example.com/ssl/mail.example.com-le.cer ispserver.crt  
ln -s /var/www/mail.example.com/ssl/mail.example.com-le.key ispserver.key

Configurando um script de renovação automática

Abra um novo arquivo de script:

nano /usr/local/bin/le_mailserver_restart.sh

Cole isso nesse arquivo:

#!/bin/sh  
### BEGIN INIT INFO  
# Provides: LE MAILSERVER CERT AUTO UPDATER  
# Required-Start: $local_fs $network  
# Required-Stop: $local_fs  
# Default-Start: 2 3 4 5  
# Default-Stop: 0 1 6  
# Short-Description: LE MAILSERVER CERT AUTO UPDATER  
# Description: Reinicia o servidor de e-mail automaticamente quando um novo certificado Let's Encrypt é emitido.  
### END INIT INFO  
systemctl restart postfix  
systemctl restart dovecot

Torne o script executável:

chmod +x /usr/local/bin/le_mailserver_restart.sh

Para acionar automaticamente este script na renovação, vamos usar o systemd.

Crie e abra o novo serviço systemd:

nano /etc/systemd/system/le-mailserver-restart.service

Cole isso nesse arquivo:

[Unit]   
Description="Executar script para reiniciar Postfix e Dovecot após o certificado ter sido renovado"  
  
[Service]  
ExecStart=/usr/local/bin/le_mailserver_restart.sh

Salve e feche este arquivo. Em seguida, crie e abra o novo arquivo de caminho do systemd:

nano /etc/systemd/system/le-mailserver-restart.path

Cole isso nesse arquivo e substitua mail.example.com pelo nome do host que você usou:

[Unit]  
Description="Monitorar os arquivos de certificado do servidor de e-mail para acionar uma reinicialização dos serviços de e-mail após os certificados terem sido renovados"  
  
[Path]  
PathModified=/var/www/mail.example.com/ssl/  
Unit=le-mailserver-restart.service  
  
[Install]  
WantedBy=multi-user.target

Salve e feche este arquivo. Em seguida, inicie o serviço e habilite-o para que ele seja executado na inicialização:

systemctl start le-mailserver-restart.path

E habilite-o para que ele seja executado na inicialização:

systemctl enable le-mailserver-restart.path

E estamos prontos!

Não está funcionando?

Uma vez tive um problema com isso, porque o Let’s Encrypt usou um dos domínios alias como domínio principal. Você pode encontrar o domínio principal na ferramenta SSL mencionada anteriormente como “Nome comum” ou listando o conteúdo de /root/acme.sh/ para ver qual dos (alias)domínios tem uma pasta lá.

Se você ainda estiver enfrentando um problema, abra um tópico no fórum para que outros possam ajudá-lo.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.