我们有一个在 Windows Server 2008 上运行的 Exchange 2007 服务器。我们的客户端使用另一个供应商的邮件服务器。他们的安全策略要求我们使用强制 TLS。直到最近,这一切都很好。
现在,当 Exchange 尝试将邮件传递到客户端的服务器时,它会记录以下内容:
无法在连接器“默认外部邮件”上建立与域安全域“ourclient.com”的安全连接,因为 ourclient.com 的传输层安全 (TLS) 证书的验证失败,状态为“UntrustedRoot”。请与 ourclient.com 的管理员联系以解决问题,或从域安全列表中删除该域。
从 TLSSendDomainSecureList 中删除 ourclient.com 会导致使用机会性 TLS 成功传递消息,但这充其量只是一种临时解决方法。
客户是一家非常大的、对安全敏感的国际公司。我们的 IT 联系人声称不知道他们的 TLS 证书有任何更改。我曾多次要求他确定生成证书的权威,以便我可以解决验证错误,但到目前为止他一直无法提供答案。据我所知,我们的客户本可以将其有效的 TLS 证书替换为来自内部证书颁发机构的证书。
有谁知道手动检查远程 SMTP 服务器的 TLS 证书的方法,就像在 Web 浏览器中检查远程 HTTPS 服务器的证书一样?确定证书的颁发者并将该信息与我们 Exchange 服务器上受信任的根证书列表进行比较可能会很有帮助。
您可以使用 OpenSSL。如果您必须使用 来检查证书
STARTTLS
,那么只需执行或者对于标准的安全 smtp 端口:
我知道这是一个老问题,但即使在今天,对于希望在其电子邮件服务器上确认 SSL 证书有效性的管理员来说,它仍然是一个相关问题。
您可以访问https://www.checktls.com并免费运行测试。
如果你没有 OpenSSL,你也可以使用这个 Python 片段:
其中 [hostname] 是服务器。
来源: https: //support.google.com/a/answer/6180220
这将为您提取 OpenSSL 库,这使安装更容易一些。