我有一台 Exchange 2010 服务器,当我使用非通配符证书时,其自动发现服务以前运行良好(正确配置了 RPC-over-HTTP)。在我用通配符证书替换证书后,自动发现服务一直将新客户端配置为 IMAP。这绝对不是理想的行为。我已经应用命令Set-OutlookProvider
将受信任的名称更改为msstd:*.mydomain.com
。TestExchangeConnectivity.com 说一切正常,只有一个关于旧 Windows 计算机上受信任根更新的警告。但自动发现显然不起作用。我该怎么办/为什么自动发现可能配置 IMAP 而不是 RPC-over-HTTP?
编辑:顺便说一句,当我手动配置帐户并为所有连接速度指定 HTTP 代理设置时,它工作正常。唯一不尽人意的是,在检查名称部分,它不需要 DOMAIN\user 格式,而只需要完整的实际名称。
编辑2:自动发现响应如下:
<?xml version="1.0"?>
<Autodiscover xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/exchange/autodiscover/responseschema/2006">
<Response xmlns="http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a">
<User>
<DisplayName>J Shin</DisplayName>
<LegacyDN>/o=mydomain/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=J Shin</LegacyDN>
<DeploymentId>e8362375-54d7-471c-acd9-7e5116e4810e</DeploymentId>
</User>
<Account>
<AccountType>email</AccountType>
<Action>settings</Action>
<Protocol>
<Type>EXCH</Type>
<Server>myserver.corp.mydomain.com</Server>
<ServerDN>/o=mydomain/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Configuration/cn=Servers/cn=myserver</ServerDN>
<ServerVersion>738280F7</ServerVersion>
<MdbDN>/o=mydomain/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Configuration/cn=Servers/cn=myserver/cn=Microsoft Private MDB</MdbDN>
<ASUrl>https://myserver.corp.mydomain.com/EWS/Exchange.asmx</ASUrl>
<OOFUrl>https://myserver.corp.mydomain.com/EWS/Exchange.asmx</OOFUrl>
<OABUrl>https://mail.mydomain.com/OAB/84798c85-90d3-45fc-a67e-72d928e57ae6/</OABUrl>
<UMUrl>https://myserver.corp.mydomain.com/EWS/UM2007Legacy.asmx</UMUrl>
<Port>0</Port>
<DirectoryPort>0</DirectoryPort>
<ReferralPort>0</ReferralPort>
<PublicFolderServer>myserver.corp.mydomain.com</PublicFolderServer>
<AD>EMDDC21.corp.mydomain.com</AD>
<EwsUrl>https://myserver.corp.mydomain.com/EWS/Exchange.asmx</EwsUrl>
<EcpUrl>https://myserver.corp.mydomain.com/ecp/</EcpUrl>
<EcpUrl-um>?p=customize/voicemail.aspx&exsvurl=1</EcpUrl-um>
<EcpUrl-aggr>?p=personalsettings/EmailSubscriptions.slab&exsvurl=1</EcpUrl-aggr>
<EcpUrl-mt>PersonalSettings/DeliveryReport.aspx?exsvurl=1&IsOWA=<IsOWA>&MsgID=<MsgID>&Mbx=<Mbx></EcpUrl-mt>
<EcpUrl-ret>?p=organize/retentionpolicytags.slab&exsvurl=1</EcpUrl-ret>
<EcpUrl-sms>?p=sms/textmessaging.slab&exsvurl=1</EcpUrl-sms>
</Protocol>
<Protocol>
<Type>EXPR</Type>
<Server>mail.mydomain.com</Server>
<ASUrl>https://mail.mydomain.com/ews/exchange.asmx</ASUrl>
<OOFUrl>https://mail.mydomain.com/ews/exchange.asmx</OOFUrl>
<OABUrl>https://mail.mydomain.com/OAB/84798c85-90d3-45fc-a67e-72d928e57ae6/</OABUrl>
<UMUrl>https://mail.mydomain.com/ews/UM2007Legacy.asmx</UMUrl>
<Port>0</Port>
<DirectoryPort>0</DirectoryPort>
<ReferralPort>0</ReferralPort>
<SSL>On</SSL>
<AuthPackage>Ntlm</AuthPackage>
<CertPrincipalName>msstd:*.mydomain.com</CertPrincipalName>
<EwsUrl>https://mail.mydomain.com/ews/exchange.asmx</EwsUrl>
<EcpUrl>https://mail.mydomain.com/ecp/</EcpUrl>
<EcpUrl-um>?p=customize/voicemail.aspx&exsvurl=1</EcpUrl-um>
<EcpUrl-aggr>?p=personalsettings/EmailSubscriptions.slab&exsvurl=1</EcpUrl-aggr>
<EcpUrl-mt>PersonalSettings/DeliveryReport.aspx?exsvurl=1&IsOWA=<IsOWA>&MsgID=<MsgID>&Mbx=<Mbx></EcpUrl-mt>
<EcpUrl-ret>?p=organize/retentionpolicytags.slab&exsvurl=1</EcpUrl-ret>
<EcpUrl-sms>?p=sms/textmessaging.slab&exsvurl=1</EcpUrl-sms>
</Protocol>
<Protocol>
<Type>WEB</Type>
<Port>0</Port>
<DirectoryPort>0</DirectoryPort>
<ReferralPort>0</ReferralPort>
<Internal>
<OWAUrl AuthenticationMethod="Basic, Fba">https://myserver.corp.mydomain.com/owa/</OWAUrl>
<Protocol>
<Type>EXCH</Type>
<ASUrl>https://myserver.corp.mydomain.com/EWS/Exchange.asmx</ASUrl>
</Protocol>
</Internal>
<External>
<OWAUrl AuthenticationMethod="Fba">https://mail.mydomain.com/owa/</OWAUrl>
<Protocol>
<Type>EXPR</Type>
<ASUrl>https://mail.mydomain.com/ews/exchange.asmx</ASUrl>
</Protocol>
</External>
</Protocol>
</Account>
</Response>
</Autodiscover>
答案1
我希望我能早点回答这个问题,因为我已经忘记了如何解决这个问题的一些细节(主要是通过反复试验)——所以如果我记错了,请谨慎对待这个答案。以下是我所做的:
- 使用 Exchange 而不是 IIS7.5 为我的通配符证书重新生成了 CSR
- 获得了新的证书并确认其在其他使用场所也能正常工作
- 改变了两者内部的和外部的公共名称的 URL (
mail.mycompany.com
) - 创建内部 DNS 记录,以
mail.mycompany.com
指向只能从内部访问的接口(而不是从 WAN 获取 NAT 流量的接口) - 验证 DNS 解析是否按预期工作(我从内部获取内部 IP,从外部获取外部 IP)
- 将所有 IIS Exchange 身份验证设置重置为 Microsoft 提供的默认设置
- 允许 RPC-over-HTTP 的 NTLM 身份验证
- 更改了 PowerShell 中的自动发现设置以反映先前的更改
- 已将自动发现设置更改为优先使用 RPC-over-HTTP总是
- 尝试使用自动发现连接到我的邮件服务器后,验证问题已消失。
一个小问题是,当从外部进行身份验证时(即不是通过 SSO),我必须指示用户以格式提供他们的用户名MYCOMPANY\username
。