出站匿名 TLS 证书选择

 

适用于: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

上一次修改主题: 2007-04-25

在下列情况中需要选择出站匿名传输层安全性 (TLS) 证书:

  • 对边缘传输服务器和集线器传输服务器之间的简单邮件传输协议 (SMTP) 会话进行身份验证

  • 仅使用公钥对集线器传输服务器之间的 SMTP 会话进行加密

对于集线器传输服务器之间的通信,使用匿名 TLS 和来自证书的公钥对会话加密。然后要进行 Kerberos 身份验证。建立 SMTP 会话后,接收服务器将启动一个证书选择过程,以确定在 TLS 协商期间使用哪个证书。接收服务器也会执行证书选择过程。有关此过程的详细信息,请参阅选择入站匿名 TLS 证书

本主题将介绍出站匿名 TLS 证书的选择过程。所有步骤都在发送服务器上执行。下图给出了此过程的所有步骤。

note注意:
在证书的初始加载过程中,边缘传输服务器角色和集线器传输服务器角色的出站证书选择过程不同。下图给出了每个服务器角色的起始点。

出站匿名 TLS 证书选择

选择出站匿名 TLS 证书

从集线器传输服务器发送

  1. 从集线器传输服务器或边缘传输服务器建立 SMTP 会话后,Microsoft Exchange 会调用一个过程来加载证书。

  2. 证书加载过程取决于 SMTP 会话从集线器传输服务器还是从边缘传输服务器启动。

    在集线器传输服务器上     将进行下列检查:

    1. 检查会话连接到的发送连接器,查看是否已为 ExchangeServer 配置了 SmartHostAuthMechanism 属性。您可以使用 Set-SendConnector cmdlet 在发送连接器上设置 SmartHostAuthMechanism 属性。您还可以在给定发送连接器的“配置智能主机身份验证设置”页上选择“Exchange Server 身份验证”来设置 ExchangeServerSmartHostAuthMechanism 属性。要打开“配置智能主机身份验证设置”页,请在发送连接器属性页的“网络”选项卡中单击“更改”。

    2. 检查邮件的 DeliveryType 属性,确定是否已将其值设置为 SmtpRelayWithinAdSitetoEdge。您可以通过运行带有格式列表参数 (| FL) 的 Get-Queue cmdlet 来查看 DeliveryType 属性。

      必须满足这两个条件。如果未将 ExchangeServer 作为身份验证机制启用,或未将 DeliveryType 属性设置为 SmtpRelayWithinAdSitetoEdge,则发送集线器传输服务器将不使用匿名 TLS,而且也不会加载证书。如果两个条件都满足,证书选择过程会继续进行步骤 3。

    在边缘传输服务器上     将进行下列检查:

    1. 检查会话连接到的发送连接器,查看是否已为 ExchangeServer 配置了 SmartHostAuthMechanism 属性。如本主题前面所述,您可以使用 Set-SendConnector cmdlet 在发送连接器上设置 SmartHostAuthMechanism 属性。您还可以在给定发送连接器的“配置智能主机身份验证设置”页上选择“Exchange Server 身份验证”来设置 ExchangeServerSmartHostAuthMechanism 属性。要打开“配置智能主机身份验证设置”页,请在发送连接器属性页的“网络”选项卡中单击“更改”。

    2. 检查会话连接到的发送连接器,确认 SmartHost 地址空间属性中包含“- -”。

      必须满足这两个条件。如果尚未将 ExchangeServer 作为身份验证机制启用,同时地址空间中也不包含“- -”,则发送集线器传输服务器将不使用匿名 TLS,而且也不会加载证书。如果两个条件都满足,证书选择过程会继续进行步骤 3。

  3. Microsoft Exchange 将查询 Active Directory 目录服务以在服务器上检索证书的指纹。证书指纹存储于服务器对象的 msExchServerInternalTLSCert 属性。

    如果无法读取 msExchServerInternalTLSCert 属性或该值为 null,则 Microsoft Exchange 不会在 SMTP 会话中公布 X-ANONYMOUSTLS,而且也不会加载证书。

    note注意:
    如果在启动 Microsoft Exchange 传输服务期间(而非 SMTP 会话期间)无法读取 msExchServerInternalTLSCert 属性或者该属性的值为 null,应用程序日志会记录事件 ID 12012。
  4. 如果发现了指纹,证书选择过程会对本地计算机证书存储进行搜索以寻找与指纹匹配的证书。如果找不到相关证书,则服务器不会公布 X-ANONYMOUSTLS,也不会加载任何证书,并且应用程序日志会记录事件 ID 12013。

  5. 从证书存储加载证书后,会检查它是否已过期。将证书中的 Valid to 字段与当前日期和时间进行比较。如果证书已过期,应用程序日志会记录事件 ID 12015。但是证书选择进程并没有失败,还在继续剩余的检查。

  6. 检查证书以查看它在最新的本地计算机证书存储中是否是最新的。作为此检查的一部分,还会为潜在的证书域建立域列表。域列表基于以下计算机配置:

    • 完全限定的域名 (FQDN),如 mail.contoso.com

    • 主机名,如 EdgeServer01

    • 物理 FQDN,如 EdgeServer01.contoso.com

    • 物理主机名,如 EdgeServer01

    note注意:
    对于已配置为群集的服务器,或运行 Microsoft Windows 负载平衡的计算机,则不再检查 DnsFullyQualifiedDomainName 设置,而是检查以下注册表项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WLBS\Parameters\Interface\{GUID}\ClusterName
  7. 建立域列表后,证书选择过程会执行搜索,以在证书存储中查找与 FQDN 匹配的所有证书。证书选择过程会从此列表中找出合格的证书的列表。合格的证书必须满足下列条件:

    • 证书是 X.509 版本 3 或更高版本。

    • 证书具有相关的私钥。

    • “主题”或“主题备用名称”字段包含在步骤 6 中检索到的 FQDN。

    • 证书已启用,以供安全套接字层 (SSL)/TLS 使用。具体来说,已使用 Enable-ExchangeCertificate cmdlet 为此证书启用了 SMTP 服务。

  8. 按照以下顺序从合格的证书中选择最合适的证书:

    • 按最近的有效期自日期对合格的证书进行排序。Valid from 是证书上的“版本 1”字段。

    • 使用从此列表中找到的第一个有效的公钥基础结构 (PKI) 证书。

    • 如果未找到有效的 PKI 证书,则使用第一个自签名证书。

  9. 确定最合适的证书后,将进行另一项检查以确定证书指纹是否与 msExchServerInternalTLSCert 属性中存储的证书相匹配。如果相匹配,则将该证书用于 X-AnonymousTLS。如果不匹配,则在应用程序日志中记录该事件 ID 1037。但是,这并不会导致 X-AnonymousTLS 失败。

详细信息

有关如何为其他 TLS 情形选择证书的详细信息,请参阅下列主题: