客户端有一个在 Ubuntu 18.04 上使用 Apache 托管的内部网。
当我通过它更新员工信息时,会发送一封电子邮件,但失败并显示以下错误:
(SMTP 错误:421 4.7.66 不支持 TLS 1.0。请升级/更新您的客户端以支持 TLS 1.2。访问https://aka.ms/smtp_auth_tls。)
它还显示一些 CakePHP 错误,不确定它们是否相关。
这让我认为它与服务器无关,因为该站点托管在 Linux 机器上,并且我被重定向到 Microsoft 页面,但我可能错了。因此,客户端是什么意思?我用来访问页面的 Windows 设备应该已经配置为能够使用 TLS 1.2。它是指发送电子邮件的 Office 365 帐户吗?
我无法访问 Office 365 门户,所以如果是这种情况,我必须联系客户尝试可能的解决方案。
我尝试过的事情:
- 仅在访问该页面的 Windows PC 中的 inetcpl.cpl 中启用 TLS 1.2。
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 -TLSv1.2
在/etc/apache2/mods-enabled/ssl.conf
服务器中定义。
答案1
(这开始是一条评论,但变得有点长)
你为什么要升级服务器?错误消息明确指出问题出在你的 SMTP 上客户。您在此处发布的错误消息甚至告诉您 SMTP 客户端是 cake 的一部分。但是根据官方文档(https://book.cakephp.org/4/en/core-libraries/email.html#configuring-transports) 无法更改 Cake 使用的 TLS 版本。
我认为这是 Cake 开发人员的一个重大疏忽,应该将其报告为错误,而不是功能请求。
请注意,Cake 实际上并没有实现 SSL/TLS 加密 - 这是由 OpenSSL 处理的 - 但目前您需要通过 Cake 才能使用它。
yourcode -> cake -> openssl -> internet -> SMTP server
同时,您要么需要从头开始编写自己的传输机制,要么使用不同的邮件发送库,要么使用 SMTP 中继。