我有一个新的 Exchange 2013 环境,运行在 Windows 2013 R2 上,部署了 2 个 Edge 和 4 个 CAS/Mailbox 服务器。它部署在资源林中,与主林建立了适当的信任关系。OWA、ActiveSync 和 IMAP 都运行良好。
对于那些不支持或不会使用 ActiveSync 的客户端,我当然需要 IMAP 和 SMTP(我们有意识地坚决拒绝 POP)。IMAP 工作正常;SMTP 则不行。
默认接收连接器客户端前端配置为侦听端口 587。当我在 Mac Mail 等中禁用 TLS 时(无论客户端如何,行为几乎相同),我只能使用资源林中的用户登录 - 我无法对主林中的用户进行身份验证。如果我启用 TLS(这是我想要的,设置似乎也表明了这一点),我根本无法连接。
有趣的是,客户端代理默认接收连接器(在端口 465 上)做工作正常,启用 TLS 并对主要林用户进行身份验证。这告诉我 SSL 证书没有问题,并且信任正在发挥作用。
我不明白为什么客户端前端连接器不允许我通过 TLS 进行连接。当我使用 Telnet 时,我收到以下介绍:
Trying x.x.x.86...
Connected to excmb1.example.com.
Escape character is '^]'.
220 example.com Microsoft ESMTP MAIL Service ready at Wed, 6 Aug 2014 15:51:27 -0800
ehlo
250-example.com Hello [x.x.x.155]
250-SIZE 36700160
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-AUTH GSSAPI NTLM
250-8BITMIME
250-BINARYMIME
250 CHUNKING
quit
221 2.0.0 Service closing transmission channel
Connection closed by foreign host.
我忍不住注意到那里缺少“250-STARTTLS”行——它是当我 Telnet 到端口 465 时出现。
使用 EMC 和Get-ReceiveConnector
cmdlet,两个接收连接器本质上是相同的。那么为什么 587 上的连接器(客户端应该用于 SMTP 的连接器)不能通过 TLS 工作,也不能验证受信任的域用户?为什么一个接收连接器(应该只是用于 Exchange 服务器相互通信的连接器)可以工作,而一个看似相同的连接器却不能工作?
答案1
首先检查连接器上是否启用了 Tls AuthMechanism:
Get-ReceiveConnector -Identity "SERVER\Default Frontend SERVER" | Format-List
如果不是这种情况,请启用它:
Set-ReceiveConnector -Identity "SERVER\Default Frontend SERVER" -AuthMechanism "None,Tls"
然后还要确保您已注册 Smtp 服务的证书:
Get-ExchangeCertificate | Format-List