确保系统已更新至最新版本,并安装必要工具:
sudo yum update -y
sudo yum install epel-release -y # 安装EPEL仓库(Certbot依赖)
Certbot是自动化获取和管理Let’s Encrypt证书的工具,通过EPEL仓库安装:
sudo yum install certbot -y
使用Certbot的certonly模式获取证书(以mail.example.com为例,需替换为你的邮件服务器域名):
sudo certbot certonly --standalone -d mail.example.com
--standalone:Certbot会启动一个临时Web服务器完成域名验证(需确保80端口未被占用);-d:指定域名(邮件服务器需使用公网域名,否则证书无效)。编辑Postfix主配置文件/etc/postfix/main.cf,添加/修改以下内容:
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.example.com/fullchain.pem # 证书链文件
smtpd_tls_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pem # 私钥文件
smtpd_use_tls = yes # 启用TLS
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache # TLS会话缓存
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache # SMTP会话缓存
保存后重启Postfix服务:
sudo systemctl restart postfix
若使用Dovecot提供IMAP/SMTP服务,需编辑/etc/dovecot/conf.d/10-ssl.conf:
ssl = yes # 启用SSL
ssl_cert = </etc/letsencrypt/live/mail.example.com/fullchain.pem # 证书链文件
ssl_key = </etc/letsencrypt/live/mail.example.com/privkey.pem # 私钥文件
保存后重启Dovecot服务:
sudo systemctl restart dovecot
允许邮件服务相关端口通过防火墙(CentOS 7及以上使用firewalld):
sudo firewall-cmd --permanent --zone=public --add-service=smtp # SMTP(25端口)
sudo firewall-cmd --permanent --zone=public --add-service=smtps # SMTPS(465端口)
sudo firewall-cmd --permanent --zone=public --add-service=imap # IMAP(143端口)
sudo firewall-cmd --permanent --zone=public --add-service=imaps # IMAPS(993端口)
sudo firewall-cmd --reload
使用openssl命令验证SMTPS端口(465)的SSL握手是否成功:
openssl s_client -connect mail.example.com:465
若输出中包含Verify return code: 0 (ok),则表示SSL配置正确。
Let’s Encrypt证书有效期为90天,Certbot会自动创建cron任务续订。可手动测试续订流程:
sudo certbot renew --dry-run
若测试通过,证书会在到期前自动续订,无需手动干预。
privkey.pem)需严格保密,避免泄露。