雅虎无法通过 TLS 向我的服务器发送电子邮件

雅虎无法通过 TLS 向我的服务器发送电子邮件

我在雅虎收发邮件的日志中收到以下错误:

postfix/smtpd[8679]: SSL_accept error from sonic324-12.consmr.mail.gq1.yahoo.com[98.137.70.36]: 0
postfix/smtpd[8679]: warning: TLS library problem: error:14094416:SSL routines:SSL3_READ_BYTES:sslv3 alert certificate unknown:s3_pkt.c:1278:SSL alert number 46:
postfix/smtpd[8679]: lost connection after STARTTLS from sonic324-12.consmr.mail.gq1.yahoo.com[98.137.70.36]

这种情况只发生在雅虎上,他们的客户端以纯文本形式重新连接。我使用的是 Postfix 2.11.0 和 OpenSSL 1.0.2h。我使用的是 Let's Encrypt 证书。

答案1

需要说明的是,这绝对是 Yahoo SMTP 的问题。他们未能正确实施机会性 TLS,并且在 WebPKI 身份验证失败时通过明文发送(没有 TLS)而自食其果。这毫无道理,明文发送永远不会更安全,而且仍然未经身份验证。Yahoo 工程师曾多次承诺修复此问题,但至今尚未修复(2018 年 8 月)。

答案2

在 Postfix 中需要将根 CA 链定义为 SMTP 服务器吗?我认为不是这样。拥有 CA 的全部意义在于,我可以使用第三方 CA 检查您的服务器|客户端证书。如果我有您的服务器|客户端证书派生自的 CA 证书,我也可以自己检查。作为 SMTP 客户端,Yahoo 无法了解我的 Postfix 列出的根 CA 或 CA 链。即使它确实获得了这样的见解,它会学到什么 - 我制作了自己的 CA 证书,并从中制作了自己的服务器证书?

通过将我的根 CA 证书添加到 /etc/ssl/certs 中的其他 CA 证书中进行测试,对其进行哈希处理,并在 main.cf 中让 smtpd_tls_CApath = /etc/ssl/certs

Yahoo 邮件投递(作为客户端)在 STARTTLS 上仍然失败,并恢复为明文邮件投递。继续发生枪击事件。

答案3

这不是 Yahoo SMTP 问题。相反,您需要在 Postfix 文件中定义有效的证书和 CA 链main.cf

smtpd_tls_CAfile = /etc/pki/tls/root.crt

将您的根 CA 链添加到此文件并重新启动 Postfix。

相关内容