用户首先获取证书,配置Postfix和Dovecot的SSL证书相关参数,调整安全协议和加密套件,检查文件和目录权限,处理可能的SELinux问题,重启服务,然后测试连接。下面是 Postfix 和 Dovecot 的 SSL/TLS 配置步骤,确保邮件服务器正确配置SSL证书:
1. 获取 SSL 证书
生产环境:建议使用受信任的证书(如 Let's Encrypt)。
bash
certbot certonly --standalone -d mail.example.com
证书路径通常为 /etc/letsencrypt/live/mail.example.com/。
测试环境:生成自签名证书:
bash
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
keyout /etc/ssl/private/mail.example.com.key \
out /etc/ssl/certs/mail.example.com.crt
2. Postfix 配置 (SMTP)
编辑 /etc/postfix/main.cf:
ini
指定证书和私钥路径
smtpd_tls_cert_file = /etc/ssl/certs/mail.example.com.crt
smtpd_tls_key_file = /etc/ssl/private/mail.example.com.key
smtpd_tls_CAfile = /etc/ssl/certs/ca-bundle.crt # 可选CA证书链
启用TLS加密
smtpd_use_tls = yes
smtpd_tls_security_level = may # 或强制使用 "encrypt"
强制客户端使用TLS(可选)
smtpd_tls_auth_only = yes
禁用不安全的协议版本(如SSLv2/SSLv3)
smtpd_tls_protocols = !SSLv2, !SSLv3
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
加密套件配置
smtpd_tls_ciphers = high
smtpd_tls_eecdh_grade = strong
3. Dovecot 配置 (IMAP/POP3)
编辑 /etc/dovecot/conf.d/10-ssl.conf:
ini
启用SSL证书并指定证书
ssl = yes
ssl_cert = </etc/ssl/certs/mail.example.com.crt
ssl_key = </etc/ssl/private/mail.example.com.key
禁用旧协议
ssl_min_protocol = TLSv1.2
ssl_cipher_list = EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
ssl_prefer_server_ciphers = yes
强制使用SSL(禁用非加密登录)
disable_plaintext_auth = yes
4. 文件权限与SELinux
确保证书和私钥权限安全:
bash
chmod 600 /etc/ssl/private/mail.example.com.key
chmod 644 /etc/ssl/certs/mail.example.com.crt
如果使用 SELinux/AppArmor,允许服务访问证书:
bash
setsebool -P httpd_can_network_connect on # Let's Encrypt证书续签可能需要
restorecon -Rv /etc/ssl
5. 重启服务
bash
systemctl restart postfix dovecot
6. 验证配置
测试 SMTP (端口 25/587):
bash
openssl s_client -connect mail.example.com:25 -starttls smtp
测试 IMAPS (端口 993):
bash
openssl s_client -connect mail.example.com:993
检查日志:
bash
tail -f /var/log/mail.log
常见问题排查
证书路径错误:检查日志中的路径拼写和文件是否存在。
权限问题:确保私钥 (.key) 仅对 root 可读。
协议不匹配:确保客户端支持服务器配置的 TLS 版本(如禁用 TLSv1.0)。
用户通过以上六个步骤就可以正确配置SSL证书,您的邮件服务器就可以启动SSL证书 加密了。若需进一步优化,可配置 OCSP Stapling 或 HSTS 等高级选项。