在 Debian 上搭建邮件服务器并配置 SSL/TLS(通常是 Let’s Encrypt),一般流程如下。下面以常见组合 Postfix + Dovecot 为例,假设你已经有一个可用的域名(如 mail.example.com)。
确保以下 DNS 记录已正确设置:
A mail.example.com → 服务器公网 IP
MX example.com → mail.example.com (优先级 10)
可选但推荐:
PTR 服务器IP → mail.example.com
sudo apt update
sudo apt install postfix dovecot-core dovecot-imapd dovecot-pop3d
安装 Postfix 时:
example.comsudo apt install certbot
sudo certbot certonly --standalone -d mail.example.com
证书路径:
/etc/letsencrypt/live/mail.example.com/
├── fullchain.pem
├── privkey.pem
sudo nano /etc/postfix/main.cf
关键配置:
# SSL 证书
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.example.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pem
# 启用 TLS
smtpd_tls_security_level = may
smtpd_tls_auth_only = yes
smtpd_tls_loglevel = 1
# 端口支持
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
# 强制加密(可选)
# smtpd_tls_security_level = encrypt
编辑:
sudo nano /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
重启 Postfix:
sudo systemctl restart postfix
sudo nano /etc/dovecot/conf.d/10-ssl.conf
内容:
ssl = required
ssl_cert = </etc/letsencrypt/live/mail.example.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.example.com/privkey.pem
sudo nano /etc/dovecot/conf.d/10-master.conf
确保有:
service imap-login {
inet_listener imap {
port = 143
}
inet_listener imaps {
port = 993
ssl = yes
}
}
重启 Dovecot:
sudo systemctl restart dovecot
openssl s_client -connect mail.example.com:587 -starttls smtp
openssl s_client -connect mail.example.com:993
看到证书信息即成功。
Let’s Encrypt 证书 90 天过期,需自动续期。
sudo certbot renew --dry-run
Postfix / Dovecot 在续期后需重载:
sudo systemctl reload postfix
sudo systemctl reload dovecot
可加入 cron 或 systemd timer。
sudo chmod 644 /etc/letsencrypt/live/mail.example.com/fullchain.pem
sudo chmod 600 /etc/letsencrypt/live/mail.example.com/privkey.pem
如果你愿意,我可以: ✅ 给你一份 完整可复制的配置文件 ✅ 针对 Debian 11 / 12 精确调整 ✅ 帮你排查 SSL 报错日志
只要告诉我你目前的进度即可。