用户首先获取证书,配置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 等高级选项。