Exchange证书错误导致本地邮箱用户无法接受到Office365用户邮件
我们前面介绍了本地Exchange与Office365进行混合部署,混合部署后,由于本地Exchange服务器证书过期,更新Exchange服务器证书后,导致Office365邮箱用户无法与本地Exchange邮箱用户通信(发送邮件),本地Exchange邮箱用户无法接受到Office365邮箱用户的邮件,经过处理后,将解决方案分享给遇到同样问题的童鞋。具体见下:
我们首先明确,如果直接运行的混合部署向导,选择的是本地的证书,致使本地接收连接器中,默认的“DefaultFrontend IXM-EX01”中证书用的是本地的证书信息,此处应用三方信任证书。因为本地与Office365进行邮件通信必须使用到第三方的受信任的颁发者颁发的证书才可以。
如果本地的Exchange有问题,就会出现以下问题;
验证连接器----Outbound to Localexchange
待导入三方信任证书后,重跑混合部署向导的时候,在证书界面要手动再选择一下三方信任证书,然后保存才能生效,如果不重新选择,直接点击保存的话,是不能生效的。因此重跑混合部署向导后,用命令查(Get-ReceiveConnector “Default Frontend IXM-EX01” | FL tls*),还是应用的本地证书。
我们之后用命令
1
2
3
4
5
6
7
8
|
Set-ReceiveConnector “Default Frontend IXM-EX01” –tlscertificatename “<I> CN=CA 沃通免费 SSL 证书 G2,
O=WoSign CA Limited, C=CN<S> CN=mail.ixmsoft.com” ) |
将三方证书帮用户绑定到接收连接器中,绑定成功,但是恰恰在C=CN之前多了一个空格,致使问题一直存在。
我们在本地Exchange Server中用Telnet localhost 25命令,ehlo的时候,发现没有250-STARTTLS选项,这就导致了,云端设置出站连接器时,勾选TLS选项时,发信失败,提示TLS身份验证失败。
通过Exchange本地log,发我们发现telent本地25端口时,接收连接器上无与该证书相匹配的信息。因此StartTLS选项启动失败。
接下来,通过如下命令移除本地Exchange服务器端接收连接器上的有问题的证书(即设置当前tls证书名称为空):
1
2
3
4
5
6
|
Get-ReceiveConnector "ServerName\Default Frontend ReceiveConnector" | Set-ReceiveConnector
-TlsCertificateName $null Get-ReceiveConnector "ServerName\Default Frontend ReceiveConnector" | Set-ReceiveConnector -TlsDomainCapabilities $null |
1
2
3
|
在重新在本地Exchange服务器端跑混合部署向导之前,用户再次在云端出站连接器勾选TLS选项发邮件,本地可以成功接收邮件。 需要注意的是:为什么本地默认接收连接器的证书为空,云端出站连接器中勾选TLS选项,云端往本地发邮件,用户依然可以收到邮件呢? 是由于本地的默认接收连接器DefaultFrontend IXM-EX01中,RequireTLS选项的值为False,也就是不是强制走TLS的。 |
当云端的出站连接器中勾选TLS选项后,发送测试邮件实际上尝试TLS加密连接是失败的,但是不返回失败结果,由于不是强制走TLS的,所以,它会尝试不走TLS加密,使得邮件成功发送。
最终解决方案是移除本地Exchange服务器端接收连接器上的有问题的证书后,重新跑了一下混合部署向导,重新选择了三方信任证书,问题得以解决。
操作方法如下:打开Exchange服务的管理中心
单击混合----修改-----登录office365管理中心
单击“是”需要修改混合部署配置
查看证书的使用者及颁发者是否为第三方受信任的颁发机构;
如果不是单击修改----选择第三方受信任的办法证书---保存即可
修改后,我们根据向导完成混合部署想到的配置更新即可
最后我们也可以在portal上测试,office365到本地的exchange是否通信正常,是否可以正常收发邮件
我们首先编辑office365上的连接器
使用受信任的办法办法机构颁发的:mail.ixmsoft.com
本文转自 高文龙 51CTO博客,原文链接:http://blog.51cto.com/gaowenlong/1726917,如需转载请自行联系原作者