温馨提示×

Debian邮件服务器怎么设置SSL

小樊
48
2026-07-07 13:11:19
栏目: 云计算

在 Debian 上搭建邮件服务器并配置 SSL/TLS(通常是 Let’s Encrypt),一般流程如下。下面以常见组合 Postfix + Dovecot 为例,假设你已经有一个可用的域名(如 mail.example.com)。


一、准备工作

1. 域名解析(非常重要)

确保以下 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 时:

  • 选择 Internet Site
  • System mail name:example.com

三、申请 SSL 证书(推荐 Let’s Encrypt)

1. 安装 certbot

sudo apt install certbot

2. 申请证书(Web 服务未占用 80 端口)

sudo certbot certonly --standalone -d mail.example.com

证书路径:

/etc/letsencrypt/live/mail.example.com/
├── fullchain.pem
├── privkey.pem

四、配置 Postfix 使用 SSL

1. 编辑 Postfix 配置

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

2. 启用 Submission(587)

编辑:

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

五、配置 Dovecot 使用 SSL

1. 编辑 Dovecot SSL 配置

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

2. 确认 IMAP/POP3 启用

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

六、测试 SSL 是否正常

1. 测试 SMTP TLS

openssl s_client -connect mail.example.com:587 -starttls smtp

2. 测试 IMAP SSL

openssl s_client -connect mail.example.com:993

看到证书信息即成功。


七、SSL 证书自动续期

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

❌ 邮件客户端连不上

  • 使用 587(Submission)
  • IMAP:993
  • 启用 STARTTLS

九、推荐安全补充(进阶)

  • 配置 SPF / DKIM / DMARC
  • 禁用 SSLv2 / SSLv3
  • 启用 fail2ban
  • 强制 TLS(生产环境)

如果你愿意,我可以: ✅ 给你一份 完整可复制的配置文件 ✅ 针对 Debian 11 / 12 精确调整 ✅ 帮你排查 SSL 报错日志

只要告诉我你目前的进度即可。

0