小编Eri*_*c J的帖子

使用 TLS 时 Microsoft 拒绝的 Sendmail 消息

我将首先声明我不是 sendmail 方面的专家。我很少使用它,但在这种情况下,我必须为我的客户使用。

背景:

我的一个客户端有一个运行 Debian 7.7、Sendmail 8.14.4 和 OpenSSL 1.0.1e 的邮件服务器。它生成电子邮件(诸如帐户重置之类的内容)并将其发送给客户。我将其称为“服务器 A”。

由于 TLS 握手失败,从服务器 A 发送到域 *.outlook.com 中的任何邮件服务器的邮件(奇怪的是不包括 @outlook.com 邮件,这些邮件由 hotmail 处理)被推迟。这只是微软拥有的服务器的问题;其他一切都在工作。日志中的错误类似于:

sendmail[22213]: ruleset=tls_server, arg1=SOFTWARE, relay=mail.protection.outlook.com, reject=403 4.7.0 TLS handshake

sendmail[22213]: s2L9EakQ022098: to=<blah@microsoft.com>, delay=00:00:55, xdelay=00:00:31, mailer=esmtp, pri=181653, relay=mail.protection.outlook.com. [145.123.225.25], dsn=4.0.0, stat=Deferred
Run Code Online (Sandbox Code Playgroud)

注意:这些日志是编造的,因为我的客户不希望复制和粘贴内容,以免意外泄漏敏感数据。信息就在那里,我只是手动输入,所以忽略错别字等。

这就是我可以从日志中获得的全部信息,即使日志是 15(除此之外,系统开始成为磁盘绑定)。

问题:

握手的 tcpdump 显示服务器 A 正在连接到 Outlook.com,EHLO 成功,服务器 A 启动了 STARTTLS,然后 Outlook.com 以其证书链响应。所有这一切都很正常。

然后在服务器 A 收到微软证书链后,服务器 A 发送了自己的客户端证书。Outlook.com 然后断开了连接。

我们的客户端证书是我们用于组织内部验证的自签名证书,不应发布到 Outlook.com。

根据我有限的知识,我最好的猜测是,outlook.com 正在请求客户端证书进行验证(或者至少 sendmail 认为它请求证书),服务器 A 上的 sendmail 是有义务的。Outlook.com 然后断开连接,要么是因为证书无效,要么不是它所期望的。

两个问题:

  1. 为什么 sendmail 将客户端证书作为 …

sendmail openssl

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

openssl ×1

sendmail ×1