PHPMailer 一直运行良好,直到 2020 年 6 月 1 日。发送电子邮件的站点的 SSL 证书在 2019 年 6 月 1 日至 2021 年 6 月 1 日期间有效,并且在浏览器中被接受,但 postfix 突然出现 TLS 问题。我可以访问电子邮件服务器和尝试发送电子邮件的 Web 服务器,并且它们在同一网络上运行。当站点尝试发送电子邮件时,我收到以下消息。
log/maillog on the email server:
Jun 9 12:26:39 12-34-56-78 postfix/submission/smtpd[3299]: connect from unknown[12.34.56.80]
Jun 9 12:26:39 12-34-56-78 postfix/submission/smtpd[3299]: SSL_accept error from unknown[12.34.56.80]: 0
Jun 9 12:26:39 12-34-56-78 postfix/submission/smtpd[3299]: warning: TLS library problem: 3299:error:14094415:SSL routines:ssl3_read_bytes:sslv3 alert certificate expired:s3_pkt.c:1493:SSL alert number 45:
Jun 9 12:26:39 12-34-56-78 postfix/submission/smtpd[3299]: lost connection after STARTTLS from unknown[12.34.56.80]
Jun 9 12:26:39 12-34-56-78 postfix/submission/smtpd[3299]: disconnect from unknown[12.34.56.80]
我检查了 postfix 或 PHPMailer 的配置文件都没有更改。它们的日期仍为 2019 年的最后一次修改。
我不想禁用“验证对等点”,因为它确实应该验证对等点。我只是不知道为什么它在证书没有更改时停止工作,但我确信日期不仅仅是巧合。我该如何解决这个问题以及如何首先防止这种情况发生?
** 编辑 **
就我而言,问题是 CA 捆绑包已过期,即使证书有效。我认为它们必须放在同一个文件中以进行后缀配置。
我完全误解了哪一方与哪一方有问题。在这种情况下,客户的电子邮件服务器存在问题。
修理:
检查 postfix/main.cf (或任何你的文件命名)
查找指定的行
smtpd_tls_cert_file
将该文件替换为当前证书(包括 CA 捆绑包)
编辑:
我有以下人员颁发的证书,其根 CA 捆绑已过期 https://www.ssls.com/knowledgebase/sectigo-root-certificate-expiring-may-30-2020/
此消息意味着 Postfix 收到 (
ssl_read_bytes
) 来自客户端(即 PHPMailer)的 TLS 警报,由于该证书已过期,它将不接受 Postfix 提供的证书。这表明您可能更改了 Web 服务器的证书,但您保留了 Postfix 的过期证书。