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 配置。
我完全搞错了哪一方有问题。在这种情况下,客户的电子邮件服务器有问题。
修理:
检查 postfix/main.cf (或者任何文件名)
查找指定行
smtpd_tls_cert_file
用当前证书(包括 CA 包)替换该文件
编辑:
我有一个由以下人员颁发的证书,其根 CA 包已过期 https://www.ssls.com/knowledgebase/sectigo-root-certificate-expiring-may-30-2020/
答案1
...postfix ... TLS library problem: ... ssl3_read_bytes:sslv3 alert certificate expired ...
此消息意味着 Postfix 收到 ( ssl_read_bytes
) 来自客户端(即 PHPMailer)的 TLS 警告,称由于此证书已过期,它将不会接受 Postfix 提供的证书。这表明您可能更改了 Web 服务器的证书,但您保留了 Postfix 的过期证书。