![有没有办法测试 SMTP 服务器的 SSL 证书?](https://linux22.com/image/698804/%E6%9C%89%E6%B2%A1%E6%9C%89%E5%8A%9E%E6%B3%95%E6%B5%8B%E8%AF%95%20SMTP%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%20SSL%20%E8%AF%81%E4%B9%A6%EF%BC%9F.png)
几个月前,我公司购买了一个快速 SSL 证书,它支持高达 256 位的加密,既用于我们的移动应用程序与服务器之间的通信,也用于通过 SMTP 服务器发送电子邮件,该服务器也位于我们的 Windows Server 2012 R2 中。我成功地通过 IIS 6 在自定义 SMTP 服务器中安装了它。一切似乎都运行良好,但只有一家与我们相关的公司告诉我们,我们的 SMTP 服务器无法连接到他们的传入电子邮件服务器,因为
我们使用的证书无法与新的 SHA256 加密标准“兼容”。
我不知道这到底意味着什么,但我打电话给我们的证书提供商,他们向我们保证我们购买的证书是正确的。此外,我很确定该公司错了,因为我们的 SMTP 证书不仅可以连接到 Gmail 帐户,还可以连接到使用该证书的许多其他传入电子邮件服务器。而且消息始终被正确传递。所以,我不知道在哪里以及如何调查问题。
通常,我们的 SMTP 服务器由部署在服务器 Windows 2012 R2 上的 .NET Web 应用程序调用,如下所示:
IDMailer M = null;
M = (IDMailer)new IDMailer();
M.FromAddress = new IDVariant(v_VEMAILRESIDE).stringValue();
M.Subject = IDL.FormatMessage((new IDVariant("|1: manutenzione ODL |2")), v_VNOMERESIDEN, v_ODL).stringValue();
M.SetRelayServer((new IDVariant("www.ourserver.it")).stringValue(), (new IDVariant(25)).intValue(), (new IDVariant("username")).stringValue(), (new IDVariant("password")).stringValue(),(new IDVariant(-1)).booleanValue());
M.HTMLBody = new IDVariant(v_HTML_MESSAGE).stringValue();
如您所见,IDMailer(来自框架System.Net.Mail
)既设置为使用我们的服务器作为中继,又使用加密技术连接到中继(最后一个参数)。因此,我真的不知道该从哪里查找问题,甚至不知道问题是否存在并且是否是我们的问题。
更新
根据建议,我尝试使用以下方法分析邮件服务器本网站使用我们的一位客户的电子邮件来测试与其传入邮件服务器的安全连接。
这是第一份总结报告:
从中我确认他们的权威收件服务器是前两个。然后,这是第一个服务器的日志(第二个是相同的)
我从中了解到问题可能出在他们身上,因为
此服务器上没有 TLS 选项
我的意思是,可能是他们的服务器不支持 TLS。因此,由于我们的 SMTP 服务器只使用 SSL 证书,因此它无法连接到他们的传入邮件服务器。我说得对吗?还是我遗漏了其他内容?
答案1
你尝试过这样的网站吗http://checktls.com? 当我们收到公司报告称他们在连接到我们的邮件服务器时收到随机证书错误时,我使用了它。能够确定一个邮箱应用了错误的证书。
答案2
该错误消息看起来更像是您的 Windows 服务器上的签名有问题。这与适用于连接但不适用于您的服务器身份的 SSL 证书无关。除非您另有说明,否则 Windows 喜欢使用 MD5 安全包装器进行签名。MD5 已损坏,因此使用 MD5 包装的证书不再是有效的身份检查。您需要检查并重新颁发标识您的邮件服务器的证书,将其更改为使用 SHA256 包装的证书。