我们有一个 Exchange Server,它有两个不同的 DNS 名称指向同一个服务器,即内部名称和外部名称。如下所示:
exchange.domain.com [External Domain]
exchange1.local.domain.com [Internal Domain]
因此,这些域名有两个通配符证书:*.local.domain.com
和*.domain.com
。
当用户通过内部域名访问 Exchange Server 时,就会出现问题。由于我只能使用*.domain.com
IIS 的证书,因此无法匹配来自使用内部 DNS 名称的客户端的内部证书。
问题基本上是如何将 DNS 域名与相应的证书匹配?由于我们无法重新颁发这些证书以拥有不同的 SAN,因此这不是一个选择。
提前致谢。
答案1
如果您尚未将证书导入 Exchange,则需要打开 EMC,单击“服务器配置”,然后在服务器上右键单击并选择“导入 Exchange 证书”。
您可以使用此方法上传多个证书,这将允许您的服务器根据您的流量是请求本地地址还是公共地址来选择正确的证书。
然后,您需要确保您的 Hub 传输/客户端访问配置(等)设置为使用与您的 SSL 证书匹配的正确 URL。
您将在 IIS 默认网站中看到您选择的证书。
但请记住,要更改它,您不能单独使用 IIS 来执行此操作,而是使用上述方法,如果您确实从 IIS 内部意外更改它,您的服务器将停止响应连接,因为它在 IIS/EMC 中的证书不匹配。
答案2
你应该在你的内部 DNS 服务器上设置 Split-Brain DNS,或者你应该在你的内部的具有内部地址解析功能的 DNS 服务器
exchange.domain.com
答案3
您需要将 IIS 虚拟目录设置为正确的域。
使用 powershell 您可以通过以下方式验证 URL:
获取 ActiveSyncVirtualDirectory | fl 内部 URL,外部 URL
获取自动发现虚拟目录 | fl 内部网址,外部网址
获取 ECPVirtualDirectory | fl 内部 URL,外部 URL
获取 OabVirtualDirectory | fl 内部 URL,外部 URL
获取 WebServicesVirtualDirectory | fl 内部 URL,外部 URL
您可以通过这种方式设置新值,放-命令:
获取 ActiveSyncVirtualDirectory -服务器 EXCHANGE | 设置 ActiveSyncVirtualDirectory -ExternalUrl 'https://mail.DOMAIN.ca/Microsoft-Server-ActiveSync'-InternalUrl'https://mail.DOMAIN.ca/Microsoft-Server-ActiveSync‘
获取自动发现虚拟目录 -服务器 EXCHANGE | 设置自动发现虚拟目录 -ExternalUrl'https://mail.DOMAIN.ca/Autodiscover/Autodiscover.xml'-InternalUrl'https://mail.DOMAIN.ca/Autodiscover/Autodiscover.xml‘
获取 ECPVirtualDirectory -服务器 EXCHANGE | 设置 ECPVirtualDirectory -ExternalUrl'https://mail.DOMAIN.ca/ECP'-InternalUrl'https://mail.DOMAIN.ca/ECP‘
获取 OabVirtualDirectory -服务器 EXCHANGE | 设置 OabVirtualDirectory -ExternalUrl'https://mail.DOMAIN.ca/OAB'-InternalUrl'https://mail.DOMAIN.ca/OAB‘
获取 WebServicesVirtualDirectory -服务器 EXCHANGE | 设置 WebServicesVirtualDirectory -ExternalUrl'https://mail.DOMAIN.ca/EWS/Exchange.asmx'-InternalUrl'https://mail.DOMAIN.ca/EWS/Exchange.asmx‘
通过 GUI 你可以查看那里指南
在这些更改之后,您必须发出重置,然后重新启动 Outlook 客户端。
不要忘记在本地 DNS 中创建主机记录,以将域名与本地 IP 匹配,或者如果您有支持它的防火墙,您可以创建一个内部 NAT 规则,当请求是您的公共交换 IP 时,它会将目的地重写为本地 IP。