SSL 证书验证失败:自签名证书问题 (Self-signed Certificate)¶
在大规模邮件投递或专业的邮件服务器配置中,SSL 证书验证失败是一个极其常见但致命的问题。如果你在 tool.tl 的测试结果中看到 [SSL: CERTIFICATE_VERIFY_FAILED],通常意味着你的服务器正在使用自签名证书 (Self-signed Certificate)。
为什么自签名证书会被拦截?¶
自签名证书是你自己生成的,没有经过受信任的证书颁发机构 (CA) 的签名。虽然它能加密通信,但它无法证明“你就是你”。 * 拒收风险:Gmail、Outlook 等主流服务商在接收邮件时,如果发现中转服务器的 TLS 证书不可信,可能会直接拒收或将其丢入垃圾箱。 * 安全报警:客户端(如 Outlook, iPhone Mail)会弹出安全警告,提示用户连接不安全。
解决方案:换用受信任的 SSL 证书¶
1. 使用 Let's Encrypt (推荐)¶
这是目前最流行且免费的方案。你可以使用 certbot 自动化工具为你的邮件域名(如 mail.yourdomain.com)申请证书。
# 以 Ubuntu 和 Nginx/Standalone 为例
sudo apt update
sudo apt install certbot
sudo certbot certonly --standalone -d mail.yourdomain.com
2. 配置 Dovecot/Postfix 使用新证书¶
申请成功后,你需要修改配置文件指向新的 .pem 文件:
Postfix (/etc/postfix/main.cf):
smtpd_tls_cert_file=/etc/letsencrypt/live/mail.yourdomain.com/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/mail.yourdomain.com/privkey.pem
Dovecot (/etc/dovecot/conf.d/10-ssl.conf):
ssl_cert = </etc/letsencrypt/live/mail.yourdomain.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.yourdomain.com/privkey.pem
下一步操作¶
- 部署受信任证书。
- 重启 Postfix 和 Dovecot。
- 去 邮件诊断工具 检测。