我工作的一家小公司正在运行自托管的 Exchange Server 2010,我的工作是将此服务器迁移到 Exchange Server 2016,因为旧的服务器已经有一段时间不支持了。
我知道 Exchange 2016 和 2010 可以共存,而且由于我们不能丢失我们的电子邮件,所以我先做了一些测试。我在旧 Exchange 服务器上创建了一个虚拟用户,创建了一个迁移作业并尝试访问它(但目标是在迁移完成后关闭旧服务器)。
邮件流(从/向外部/内部电子邮件发送/接收 - 一切正常!)不是问题。
但我无法让 Outlook (2010) 客户工作。请注意,我们仅在内部使用 Outlook - 在已加入域的计算机上,(当前)不需要外部访问。每当我将虚拟帐户添加到我的 Outlook 时,一切都会正常运行 - 但只要我关闭 Outlook 并再次打开它,Outlook 就无法再访问信息存储。通过内部 URL 访问虚拟邮件https://ex2016.domain.local/owa/
非常有效。
当我在添加虚拟电子邮件帐户后立即检查连接状态时,它会显示那些通过 http 连接的 mapi(据我所知,这是自 2013 年 Exchange 以来的默认访问方法)。我已经执行了自动发现测试,它是成功的。
有一个证书警告,因为目前这是安装中的自签名证书。但我也尝试用颁发给真实域名的证书替换它,但这并没有什么不同。(即使我更改了证书和 url,Outlook 仍然显示证书警告,我不知道为什么!)
但我怀疑证书问题与我的客户问题有关。在我的网络研究中,我发现了一个存在于 Exchange 2016 服务器上的错误,其中未启用对 mapi 虚拟目录的身份验证,这导致这些客户端连接失败。我检查了一下(我安装了 Exchange 2016 CU21),微软显然修复了这个错误 - 在我的安装中,身份验证已经启用。
我现在真的迷路了。任何可能出错的提示都值得赞赏!
更新信息
感谢您的回复:关于Outlook版本,我仔细检查了它,应该是支持的。
Microsoft Outlook 2010 (14.0.7268.5000) SP2 MSO (14.0.7268.5000)
关于证书警告:这是第一个警告(安全证书是由您没有选择信任的公司颁发的。)。感谢您提供有关安装证书的提示,我不知道这种可能性。
真是奇怪,我点了安装,选择全机安装,然后关闭outlook。重新打开 Outlook 后,出现上述问题,一分钟后,再次显示相同的证书警告,即使我之前安装并单击了信任。我重复了这一步,这次是本地用户,第二次重启后,一切都开始工作了!
为什么我必须安装两次证书?Outlook 仅连接到默认网站 ( ex2016.domain.local:443
) 而不是交换后端 ( ex2016.domain.local:444
) 对吗?
这是 powershell 脚本的结果(我删除了对旧交换服务器的所有引用)
Transcript started, output file is C:\log.txt
C:\Windows\system32>
PS>Get-OabVirtualDirectory | fl Identity, server, *Auth*, InternalURL, ExternalURL
Identity : EX2016\OAB (Default Web Site)
Server : EX2016
BasicAuthentication : False
WindowsAuthentication : True
OAuthAuthentication : True
InternalAuthenticationMethods : {WindowsIntegrated, OAuth}
ExternalAuthenticationMethods : {WindowsIntegrated, OAuth}
InternalUrl : https://ex2016.domain.local/OAB
ExternalUrl :
C:\Windows\system32>
PS>Get-WebServicesVirtualDirectory | fl Identity, server, *Auth*, InternalURL, ExternalURL
Identity : EX2016\EWS (Default Web Site)
Server : EX2016
CertificateAuthentication :
InternalAuthenticationMethods : {Ntlm, WindowsIntegrated, WSSecurity, OAuth}
ExternalAuthenticationMethods : {Ntlm, WindowsIntegrated, WSSecurity, OAuth}
LiveIdNegotiateAuthentication :
WSSecurityAuthentication : True
LiveIdBasicAuthentication : False
BasicAuthentication : False
DigestAuthentication : False
WindowsAuthentication : True
OAuthAuthentication : True
AdfsAuthentication : False
InternalUrl : https://ex2016.domain.local/EWS/Exchange.asmx
ExternalUrl :
C:\Windows\system32>
PS>Get-OutlookAnywhere | fl Identity, server, *Auth*, InternalHostName, ExternalHostName
Identity : EX2016\Rpc (Default Web Site)
Server : EX2016
ExternalClientAuthenticationMethod : Negotiate
InternalClientAuthenticationMethod : Ntlm
IISAuthenticationMethods : {Basic, Ntlm, Negotiate}
InternalHostname : ex2016.domain.local
ExternalHostname :
C:\Windows\system32>
PS>Get-OwaVirtualDirectory | fl Identity, server, *Auth*, InternalURL, ExternalURL
Identity : EX2016\owa (Default Web Site)
Server : EX2016
ClientAuthCleanupLevel : High
InternalAuthenticationMethods : {Basic, Fba}
BasicAuthentication : True
WindowsAuthentication : True
DigestAuthentication : False
FormsAuthentication : True
LiveIdAuthentication : False
AdfsAuthentication : False
OAuthAuthentication : False
ExternalAuthenticationMethods : {Fba}
InternalUrl : https://ex2016.domain.local/owa
ExternalUrl :
C:\Windows\system32>
PS>Get-ClientAccessServer | fl Identity, Name, AutodiscoverServiceInternalUri
Identity : EX2016
Name : EX2016
AutoDiscoverServiceInternalUri : https://ex2016.domain.local/Autodiscover/Autodiscover.xml
C:\Windows\system32>
PS>Get-EcpVirtualDirectory| fl Identity, server, *Auth*, InternalURL, ExternalURL
Identity : EX2016\ecp (Default Web Site)
Server : EX2016
InternalAuthenticationMethods : {Basic, Fba}
BasicAuthentication : True
WindowsAuthentication : True
DigestAuthentication : False
FormsAuthentication : True
LiveIdAuthentication : False
AdfsAuthentication : False
OAuthAuthentication : False
ExternalAuthenticationMethods : {Fba}
InternalUrl : https://ex2016.domain.local/ecp
ExternalUrl :
C:\Windows\system32>
PS>Get-ActiveSyncVirtualDirectory | fl Identity, server, *Auth*, InternalURL, ExternalURL
Identity : EX2016\Microsoft-Server-ActiveSync (Default Web Site)
Server : EX2016
MobileClientCertificateAuthorityURL :
BasicAuthEnabled : True
WindowsAuthEnabled : False
ClientCertAuth : Ignore
InternalAuthenticationMethods : {}
ExternalAuthenticationMethods : {}
InternalUrl : https://ex2016.domain.local/Microsoft-Server-ActiveSync
ExternalUrl :
C:\Windows\system32>
PS>Get-MapiVirtualDirectory | fl Identity, server, *Auth*, InternalURL, ExternalURL
Identity : EX2016\mapi (Default Web Site)
Server : EX2016
IISAuthenticationMethods : {Ntlm, OAuth, Kerberos, Negotiate}
InternalAuthenticationMethods : {Ntlm, OAuth, Kerberos, Negotiate}
ExternalAuthenticationMethods : {Ntlm, OAuth, Kerberos, Negotiate}
InternalUrl : https://ex2016.domain.local/mapi
ExternalUrl : https://ex2016.domain.local/mapi
C:\Windows\system32>
PS>Get-PowerShellVirtualDirectory | fl Identity, server, *Auth*, InternalURL, ExternalURL
Identity : EX2016\PowerShell (Default Web Site)
Server : EX2016
CertificateAuthentication : True
InternalAuthenticationMethods : {}
ExternalAuthenticationMethods : {}
LiveIdNegotiateAuthentication : False
WSSecurityAuthentication : False
LiveIdBasicAuthentication : False
BasicAuthentication : False
DigestAuthentication : False
WindowsAuthentication : False
OAuthAuthentication : False
AdfsAuthentication : False
InternalUrl : http://ex2016.domain.local/powershell
ExternalUrl :
C:\Windows\system32>
PS>Get-ExchangeCertificate | fl Identity, FriendlyName, Subject, CertificateDomains, Services, Issuer, *not*, Status
Identity : EX2016.domain.local\xxxx_Cert_1_xxxx
FriendlyName : Microsoft Exchange Server Auth Certificate
Subject : CN=Microsoft Exchange Server Auth Certificate
CertificateDomains : {}
Services : SMTP
Issuer : CN=Microsoft Exchange Server Auth Certificate
NotAfter : 10.09.2026 15:12:39
NotBefore : 06.10.2021 15:12:39
Status : Valid
Identity : EX2016.domain.local\xxxx_Cert_2_xxxx
FriendlyName : Microsoft Exchange
Subject : CN=EX2016
CertificateDomains : {EX2016, EX2016.domain.local}
Services : IIS, SMTP
Issuer : CN=EX2016
NotAfter : 06.10.2026 15:11:29
NotBefore : 06.10.2021 15:11:29
Status : Valid
Identity : EX2016.domain.local\xxxx_Cert_3_xxxx
FriendlyName : WMSVC-SHA2
Subject : CN=WMSvc-SHA2-EX2016
CertificateDomains : {WMSvc-SHA2-EX2016}
Services : None
Issuer : CN=WMSvc-SHA2-EX2016
NotAfter : 04.10.2031 12:32:50
NotBefore : 06.10.2021 12:32:50
Status : Valid
Identity : EX2016.domain.local\xxxx_Cert_4_xxxx
FriendlyName : real.domain.org (rapidssl rsa ca 2018)
Subject : CN=real.domain.org
CertificateDomains : {real.domain.org}
Services : IMAP, POP, SMTP
Issuer : CN=RapidSSL RSA CA 2018, OU=www.digicert.com, O=DigiCert Inc, C=US
NotAfter : 05.11.2021 13:00:00
NotBefore : 07.10.2019 02:00:00
Status : RevocationCheckFailure
C:\Windows\system32>
PS>Get-OrganizationConfig | fl MapiHttpEnabled
MapiHttpEnabled : True
C:\Windows\system32>
PS>Get-CasMailbox -Identity Dummy.User | fl MapiHttpEnabled
MapiHttpEnabled :
C:\Windows\system32>
PS>Stop-Transcript
确保您的 Outlook 版本是最新的并受支持:支持 Mapi over HTTP。
同时,尝试为您的邮箱创建一个新的配置文件,看看是否有任何不同。
证书警告的描述是什么?
Outlook 中发生的常见证书警告如下:
1 -
The security certificate was issued by a company you have not chosen to trust.
如果您使用 IIS 的自签名证书,该证书不会自动添加到受信任的根证书存储中,您应该通过单击客户端上的“查看证书”和“安装证书”按钮手动信任它。
有关自签名证书的更多详细信息:自签名证书
2 -
The security certificate has expired or is not yet valid.
点击“查看证书”查看其有效时间,如果过期,更新并重启IIS。
3 -
The name on the security certificate is invalid or does not match the name of the site.
此警告通常与虚拟目录/服务(例如 MAPI、Outlook Anywhere、SCP)的内部/外部主机名以及证书中包含的域名有关。
请运行以下命令查看它们的配置是否正确(请使用您的邮箱身份更改cmdlet的参数值,并且不要忘记更改任何敏感信息。
-Identity
Get-CasMailbox
):