现在,当Exchange尝试将邮件传递到客户端的服务器时,它记录以下内容:
与域的安全连接无法建立连接器“默认外部邮件”上的安全域“ ourclient.com”,因为对ourclient.com的传输层安全性(TLS)证书的验证失败,状态为“ UntrustedRoot”。请与ourclient.com的管理员联系以解决此问题,或从受域保护的列表中删除该域。 TLS,但这只是暂时的解决方法。
客户端是一家非常庞大的安全敏感的国际公司。我们的IT联系人声称没有意识到其TLS证书的任何更改。我已多次要求他确定生成证书的授权机构,以便我可以对验证错误进行故障排除,但到目前为止,他一直无法提供答案。据我所知,我们的客户可以用内部证书颁发机构的证书替换其有效的TLS证书。
有人知道一种方法来手动检查远程SMTP服务器的TLS证书吗? Web浏览器中为远程HTTPS服务器的证书做什么?确定谁颁发了证书并将该信息与我们的Exchange服务器上的受信任的根证书列表进行比较可能非常有帮助。
#1 楼
您可以使用OpenSSL。如果必须使用STARTTLS
检查证书,则只需执行openssl s_client -connect mail.example.com:25 -starttls smtp
,或使用标准的安全smtp端口:
openssl s_client -connect mail.example.com:465
#2 楼
我知道这是一个古老的问题,但是对于希望在其电子邮件服务器上确认SSL证书有效性的管理员来说,即使在今天,它仍然是一个相关问题。您可以访问https://www.checktls.com和免费运行测试。
评论
这对我有用,比命令行更易读
–marijnz0r
17年4月10日在12:22
我在网站上找不到测试时遇到问题。有指针吗?
–Zero3
17年6月26日在9:45
在“ Internet安全电子邮件很容易”部分中有一个输入框,带有黑色的“ CheckTLS”按钮。
– Ketan Patel
17年6月29日在11:06
@KetanPatel Aaaand ...在哪里可以找到“ Internet安全电子邮件很容易”部分?
–Zero3
18年11月22日在1:40
不好意思,这似乎要检查DNS中列出的SMTP服务器的域并查询它们,但我想直接检查该服务器。
–kerridge0
19年1月9日在16:19
#3 楼
如果没有OpenSSL,还可以使用以下Python代码段:import smtplib
import ssl
connection = smtplib.SMTP()
connection.connect('[hostname].')
connection.starttls()
print ssl.DER_cert_to_PEM_cert(connection.sock.getpeercert(binary_form=True))
其中[主机名]是服务器。
源:https://support.google.com/a/answer/6180220
这会为您提取OpenSSL库,从而使安装变得更加容易。
评论
来自Python ssl模块文档:“此模块使用OpenSSL库。”因此,就发生的事情而言,这个答案有点误导。
–fbmd
16年7月19日在13:41
@fbmd感谢您的反馈。此编辑更好(请参见最后一句话)吗?
–浏览
16年7月19日在15:00
是的,那更好。
–fbmd
16-8-4在5:28
评论
@Miles:如果您在Windows上尝试此操作,请不要忘记openssl不支持使用Windows证书存储,因此它将始终无法通过验证。
–user1686
2010-4-12 19:49
如何查看服务器证书的到期日期?
–nimrodm
2013年12月21日在18:16
@nimrodm:将证书传递给“ openssl x509 -text”
–丹·安德烈塔(Dan Andreatta)
2014年1月6日14:58
@DanAndreatta @nimrodm或将其通过管道传递给openssl x509 -noout -dates以缩短输出。
–Skippy le Grand Gourou
17年7月6日在13:05
printf'退出\ n'| openssl s_client -connect mail.example.com:25 -starttls smtp | openssl x509-日期-noout
–德米特里·桑达洛夫(DmitrySandalov)
17-10-26在15:28