O mesmo certificado Let’s Encrypt que protege seu site também pode criptografar suas conexões de email. Este guia cobre a configuração de TLS para os servidores de email mais comuns.
Por que o email precisa de TLS
Sem TLS, o tráfego de email (incluindo senhas e conteúdo das mensagens) é enviado em texto puro:
- SMTP (envio de email) — porta 25/587 sem criptografia por padrão
- IMAP (leitura de email) — porta 143 sem criptografia por padrão
- POP3 (leitura de email) — porta 110 sem criptografia por padrão
O TLS criptografa essas conexões da mesma forma que o HTTPS criptografa o tráfego web. Clientes de email modernos esperam TLS e alertarão os usuários sobre conexões sem criptografia.
Configuração do certificado
Você pode usar os mesmos arquivos de certificado do GetHTTPS tanto para seu servidor web quanto para o servidor de email — desde que o certificado cubra o hostname que seu servidor de email usa (ex.: mail.example.com).
Obtenha um certificado que cubra o hostname do seu email:
- No GetHTTPS, adicione
mail.example.com(ou qualquer hostname para o qual seu registro MX aponta) - Você pode incluí-lo junto com seu domínio web:
example.com+www.example.com+mail.example.com - Baixe os arquivos:
fullchain.pem,privkey.pem
Postfix (SMTP)
Edite /etc/postfix/main.cf:
# TLS para email de saída (envio)
smtp_tls_security_level = may
smtp_tls_loglevel = 1
# TLS para email de entrada (recebimento) — STARTTLS na porta 25/587
smtpd_tls_cert_file = /etc/ssl/gethttps/fullchain.pem
smtpd_tls_key_file = /etc/ssl/gethttps/privkey.pem
smtpd_tls_security_level = may
smtpd_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_loglevel = 1
Para submission (porta 587), edite /etc/postfix/master.cf:
submission inet n - y - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
Recarregue: sudo systemctl reload postfix
Dovecot (IMAP/POP3)
Edite /etc/dovecot/conf.d/10-ssl.conf:
ssl = required
ssl_cert = </etc/ssl/gethttps/fullchain.pem
ssl_key = </etc/ssl/gethttps/privkey.pem
ssl_min_protocol = TLSv1.2
ssl_prefer_server_ciphers = no
Note o < antes do caminho do arquivo — o Dovecot usa essa sintaxe para ler o conteúdo do arquivo inline.
Recarregue: sudo systemctl reload dovecot
Portas IMAP/POP3
| Serviço | Sem criptografia | STARTTLS | TLS implícito (recomendado) |
|---|---|---|---|
| IMAP | 143 | 143 (upgrade) | 993 |
| POP3 | 110 | 110 (upgrade) | 995 |
| SMTP submission | 587 | 587 (upgrade) | 465 (smtps) |
Clientes de email modernos devem se conectar às portas de TLS implícito (993, 995, 465). Configure-as no Dovecot e Postfix junto com as portas STARTTLS.
Verificar TLS do email
# Testar SMTP STARTTLS
openssl s_client -connect mail.example.com:587 -starttls smtp
# Testar IMAP TLS implícito
openssl s_client -connect mail.example.com:993
# Testar SMTP TLS implícito (smtps)
openssl s_client -connect mail.example.com:465
Procure por Verify return code: 0 (ok) e os detalhes do seu certificado.
Renovação
Quando você renovar seu certificado Let’s Encrypt, substitua os arquivos e recarregue tanto seu servidor web quanto o servidor de email:
sudo systemctl reload nginx # web
sudo systemctl reload postfix # SMTP
sudo systemctl reload dovecot # IMAP
Se estiver usando Certbot com --deploy-hook, adicione os recarregamentos do servidor de email ao script do hook.
Perguntas frequentes
Posso usar o mesmo certificado para web e email?
Sim — desde que o SAN (Subject Alternative Name) do certificado inclua o hostname do servidor de email. Se seu MX aponta para mail.example.com, inclua esse nome ao solicitar o certificado.
O Let’s Encrypt funciona para servidores de email?
Sim. Os certificados Let’s Encrypt são certificados X.509 padrão que funcionam com qualquer serviço capaz de TLS — não apenas servidores web. O certificado não sabe se está sendo usado para HTTPS, SMTP, IMAP ou qualquer outra coisa.
Preciso de um certificado separado para cada protocolo de email?
Não. Um certificado funciona para SMTP (Postfix), IMAP (Dovecot) e seu servidor web simultaneamente. Aponte todos os serviços para os mesmos fullchain.pem e privkey.pem.
E o Microsoft Exchange?
O Exchange usa formato PFX/PKCS#12. Converta seus arquivos PEM para PFX, depois importe via Exchange Admin Center → Servers → Certificates → Import. O processo é similar à instalação de certificado no IIS.