在 Ubuntu 上搭建或配置邮件服务器并开启加密(TLS/SSL),通常是指让 SMTP(25/587/465)、IMAP(143/993)、POP3(110/995) 都支持加密传输。下面给你一套通用、生产可落地的做法,适合你用 Postfix + Dovecot 这类最常见的组合。
sudo apt update
sudo apt install certbot
sudo certbot certonly --standalone -d mail.example.com
成功后证书路径一般为:
/etc/letsencrypt/live/mail.example.com/
├── fullchain.pem
└── privkey.pem
✅ 建议同时申请:
-d example.com
-d mail.example.com
sudo apt install postfix
sudo nano /etc/postfix/main.cf
# TLS 证书
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_loglevel = 1
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
# 可选:强制加密(推荐)
smtpd_tls_security_level = encrypt
# 提交端口(587)加密
smtpd_tls_auth_only = yes
submission inet n - y - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
sudo systemctl restart postfix
sudo apt install dovecot-core dovecot-imapd dovecot-pop3d
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
}
}
service pop3-login {
inet_listener pop3 {
port = 110
}
inet_listener pop3s {
port = 995
ssl = yes
}
}
sudo systemctl restart dovecot
sudo ufw allow 25
sudo ufw allow 587
sudo ufw allow 465
sudo ufw allow 143
sudo ufw allow 993
sudo ufw allow 995
openssl s_client -connect mail.example.com:587 -starttls smtp
openssl s_client -connect mail.example.com:993
看到:
Verify return code: 0 (ok)
✅ 表示加密成功
sudo certbot renew
✅ 可配置 cron 自动续期
如果你愿意,可以告诉我:
我可以直接给你一套完整可复制的配置模板(生产级)。