本地域名、NetBIOS 名称与 IP 地址支持的 SSL 证书即将失效。

你的组织中可能有一些 Exchange Server 正在使用公开发行的 SSL 证书,而这些证书仅签发给了它们的本地服务器名称或"servername.local"(如果你使用的是以 .local 结尾的私有域),而非"servername.yourcompanypublicsite.com"。

举例来说,也许你公司 contoso.com 的 Exchange 服务器"exch01"持有的证书,是以其本地名称 exch01 或 exch01.local 来标识自己,而非 exch01.contoso.com(即 FQDN,完全限定域名)。又或者,你的证书是发给 exch01.contoso.com 的,但其中包含一个主题备用名称(SAN 或别名)条目,仅仅是"exch01"或"exch01.local"。

如果上述情形适用于你的公司,你需要知道:自 2016 年 10 月起,这类 SSL 证书将不再有效,因此你应当现在就规划替换——事实上,2015 年 11 月 1 日之后你将无法再重新签发这些证书,所以最好在今年内彻底弃用它们。

原因在于:签发给非公开域(如 .local)中系统的本地服务器名称的证书,会带来显著的安全风险,因为这种名称并不唯一。其他人可能获取类似的证书,进而冒充你的服务器并诱使用户登录,使他们的凭据面临风险,并暴露你组织的机密数据。这一手段并不需要你的组织有任何内部部署即可奏效。因此,自该年 11 月起,所有证书都必须使用唯一的 FQDN 服务器名称来签发。纯内部系统仍可使用本地名称证书,但这必须由私有证书颁发机构(私有 CA)来签发,而非为公开服务器名称创建并重新签发证书的公开 CA。

它将如何影响 Exchange Server 配置

除非你规划好证书升级并遵循本文给出的步骤,否则在 2016 年 10 月之后,用户可能会在 Outlook 或其浏览器中收到证书错误,Exchange 服务本身也可能面临无法正常运行的风险。某些客户端访问服务器(Client Access Server)的 Exchange 设置(例如 Autodiscover)使用的是服务器的本地名称而非 FQDN,因此这些都需要更新。这个截止日期看似遥远,但在技术领域,期限总是来得很快。

虽然最佳实践建议不要使用诸如 .local 的私有域,但如果你的公司正在使用,也未必需要重建 Active Directory 环境。你可以使用拆分 DNS(split DNS),将公开的服务器 FQDN(如 exch01.contoso.com)映射到其私有名称(exch01.local),前提是持有一张与公开地址匹配的证书。用户需通过公开服务器名称进行连接,而这正是拆分 DNS 发挥作用的地方(外界将你的服务器视为具有公开 IP 地址,而公司内部则将其链接到私有 IP 地址)。

更改 Exchange Server 2007/2010/2013 的 URL 与名称

首先,你需要重新签发证书,确保名称及 SAN 中均不再使用本地名称。其次,收集环境信息:在 Exchange 服务器上打开 Management Shell 并运行以下命令:

get-AutodiscoverVirtualDirectory | fl identity,internalurl,externalurl

get-ClientAccessServer | fl identity,AutodiscoverServiceInternalUri

get-webservicesvirtualdirectory | fl identity,internalurl,externalurl

get-oabvirtualdirectory | fl identity,internalurl,externalurl

get-owavirtualdirectory | fl identity,internalurl,externalurl

get-ecpvirtualdirectory | fl identity,internalurl,externalurl

get-ActiveSyncVirtualDirectory | fl identity,internalurl,externalurl

(其中 identity 代表服务器名称)检查生成的日志文件并记录细节:哪些证书正在使用?至少,你需要更新前三个元素的设置。

第三,一旦取得新证书,你应当先进行测试,以了解预期效果与最佳推进方式。搭建一台新服务器(或克隆现有服务器)以匹配公司当前的 Exchange 服务器,将其置于受限网络中,并通过用户使用的方式(Outlook、Web 浏览器、ActiveSync 等)进行连接。你可能无法使用 DNS 服务(因为你的真实服务器名称相同),但可以在客户端系统上使用主机记录(hosts)来模拟相同功能。

第四,在测试环境中,以管理员身份通过 Exchange Management Shell 进行如下更改(为便于示例,本文假定你的服务器名为 exch01、组织名为 contoso.com;请按你的实际环境调整命令):请注意,这些步骤假定 DNS 中已存在内部主机记录,可将你指定的 FQDN 映射到 CAS 服务器的 IP 地址。

使用以下命令更改 Autodiscover URL:

Set-ClientAccessServer -Identity exch01 -AutodiscoverServiceInternalUri https://exch01.contoso.com/autodiscover/autodiscover.xml

更改 EWS 的 Exchange Web Services InternalUrl 属性:

Set-WebServicesVirtualDirectory -Identity "exch01\EWS (Default Web Site)" -InternalUrl https://exch01.contoso.com/ews/exchange.asmx

更改脱机地址簿(OAB)分发的 InternalUrl 属性:

Set-OABVirtualDirectory -Identity "exch01\oab (Default Web Site)" -InternalUrl https://exch01.contoso.com/oab

如果你使用的是 Exchange 2007,请更改 UM Web 服务的 InternalUrl 属性(否则跳过此步):

Set-UMVirtualDirectory -Identity "CAS_Server_Name\unifiedmessaging (Default Web Site)" -InternalUrl https://exch01.contoso.com/unifiedmessaging/service.asmx

如果需要更改 OWA、ECP 或 ActiveSync 虚拟目录的设置,请使用前述命令格式,替换为你想更改的目录名称。你无需更改任何外部 URL,因为它们理应已指向公开 FQDN。

打开 IIS Manager,展开本地计算机,再展开"Application Pools",右键单击"MSExchangeAutodiscoverAppPool",然后点击"回收(Recycle)"。

运行以下命令再次核对结果:

get-AutodiscoverVirtualDirectory | fl identity,internalurl,externalurl

get-ClientAccessServer | fl identity,AutodiscoverServiceInternalUri

get-webservicesvirtualdirectory | fl identity,internalurl,externalurl

get-oabvirtualdirectory | fl identity,internalurl,externalurl

get-owavirtualdirectory | fl identity,internalurl,externalurl

get-ecpvirtualdirectory | fl identity,internalurl,externalurl

get-ActiveSyncVirtualDirectory | fl identity,internalurl,externalurl

第五,通过你的测试客户端应用/设备连接到服务器,检查并记录结果——是否出现错误、Exchange 服务是否运行异常,或其他阻碍正常运转的情况。你需要这些信息来确认步骤是否成功执行。

一旦确认访问按预期工作、没有错误且 Exchange 服务运转如常,你就可以在真实环境中实施同样的更改。别忘了提前通知用户、对相关系统做好备份或快照,并在执行本文步骤前后对所有功能进行测试。