使用域安全:配置 Mutual TLS
**适用于:**Exchange Server 2010
**上一次修改主题:**2009-12-07
本主题介绍如何为域安全性配置相互传输层安全性 (TLS),域安全性是 Microsoft Exchange Server 2010 和 Microsoft Office Outlook 2007 中的功能集,可提供相对于 S/MIME 或其他邮件级安全解决方案成本较低的解决方案。
出于此方案的目的,本主题将介绍虚拟公司 Contoso 的 Exchange 管理员如何配置其 Exchange 2010 环境,以便与其合作伙伴 Woodgrove Bank 交换域安全电子邮件。Contoso 管理员希望使用相互 TLS 来确保与 Woodgrove Bank 往来的所有电子邮件都得到保护。此外,他们还希望配置域安全性功能,以便在无法使用相互 TLS 时拒绝与 Woodgrove Bank 往来的所有邮件。
Contoso 有一个用于生成证书的内部公钥基础结构 (PKI)。PKI 的根证书已被一个主要的第三方证书颁发机构 (CA) 签名。Woodgrove Bank 使用相同的第三方 CA 来生成其证书。因此,Contoso 和 Woodgrove Bank 都信任对方的根 CA。
为了设置相互 TLS,Contoso 的 Exchange 管理员执行以下步骤:
步骤 1:生成 TLS 证书的证书请求
步骤 2:将证书导入边缘传输服务器
步骤 3:配置出站域安全性
步骤 4:配置入站域安全性
步骤 5:测试域安全邮件流
先决条件
- 本主题假设您已阅读并理解生成对第三方证书服务的请求。
- 为了实现域安全性,必须完全部署 Microsoft Exchange EdgeSync 服务。通常,对域安全功能进行的不使用 ExchangeCertificate cmdlet 的配置更改应当在组织内进行,并使用 Microsoft Exchange EdgeSync 服务将这些更改同步到边缘传输服务器。
- 必须配置计算机和 PKI 环境以便执行证书验证和证书撤消列表检查,才能在边缘传输服务器上成功运行相互 TLS。有关详细信息,请参阅在边缘传输服务器上使用 PKI 以确保域安全。
- 尽管使用更低的权限便可完成此方案中的各个配置步骤,但要完成整个端到端方案任务,您的帐户需要是 Organization Management 管理角色组的成员。
步骤 1:生成 TLS 证书的证书请求
Contoso 有一个从属于第三方 CA 的内部 PKI。在此方案中,从属是指 Contoso 在其公司基础结构中部署的 CA 包含已由公开的第三方 CA 签名的根证书。默认情况下,公开的第三方 CA 是 Microsoft Windows 证书存储中的受信任根证书之一。因此,在其受信任的根存储中包括相同的第三方 CA 并连接到 Contoso 的任何客户端都可以向 Contoso 提供的证书进行身份验证。
Contoso 有两个需要 TLS 证书的边缘传输服务器:mail1.contoso.com 和 mail2.mail.contoso.com。因此,Contoso 电子邮件管理员必须生成两个证书请求,每个服务器对应一个证书请求。
以下示例显示管理员用于生成以 base64 编码的 PKCS#10 证书请求的命令。
Contoso 管理员必须对 CN=mail1.contoso.com 运行此命令。
$Data1 = New-ExchangeCertificate -GenerateRequest -FriendlyName "Internet certificate for mail1" -SubjectName "DC=com,DC=Contoso,CN=mail1.contoso.com" -DomainName mail.contoso.com
Set-Content -Path "C:\Certificates\mail1-request.req" -Value $Data1
Contoso 管理员必须对 CN=mail2.mail.contoso.com 运行此命令。
$Data2 = New-ExchangeCertificate -GenerateRequest -FriendlyName "Internet certificate for mail2" -SubjectName "DC=com,DC=Contoso,CN=mail2.mail.contoso.com" -DomainName mail.contoso.com
Set-Content -Path "C:\Certificates\mail2-request.req" -Value $Data2
有关语法和参数的详细信息,请参阅 New-ExchangeCertificate。
重要
您创建的证书或证书请求的特定详细信息取决于许多变量。如果您要生成请求,请确保与将颁发证书的 CA 或 PKI 管理员密切配合。有关如何创建 TLS 的证书请求的详细信息,请参阅生成对第三方证书服务的请求。
返回顶部
步骤 2:将证书导入边缘传输服务器
Contoso 管理员生成证书请求之后,Contoso 的 CA 管理员使用该请求为服务器生成证书。结果证书必须作为单个证书或证书链进行颁发,并复制到合适的边缘传输服务器。
重要
不要在 Exchange 服务器上使用 Microsoft 管理控制台 (MMC) 中的证书管理器管理单元为 TLS 导入证书。如果在 Exchange 服务器上使用证书管理器管理单元导入证书,则不能将在此步骤中创建的请求绑定到所颁发的证书。因此 TLS 可能会失败。您可以使用证书管理器管理单元将存储为 .pfx 文件的证书和密钥导入本地计算机存储中。
将证书导入边缘传输服务器时,还必须为 SMTP 服务启用证书。Contoso 管理员在每个边缘传输服务器上运行以下命令,对每个证书分别运行一次。
Import-ExchangeCertificate -FileData ([Byte[]]$(Get-Content -Path C:\Certificates\mail1-certificate.pfx -Encoding Byte -ReadCount 0)) | Enable-ExchangeCertificate -Services SMTP
上述示例通过管道将证书传输到 Enable-ExchangeCertificate cmdlet,以此来导入和启用 TLS 证书。还可以在导入证书后将其启用。若要执行此操作,则需指定要启用的证书的指纹。
有关语法和参数的详细信息,请参阅 Import-ExchangeCertificate 和 Enable-ExchangeCertificate 主题。
传输证书和相关密钥
从 PKI 或 CA 提供者处收到证书后,请将所颁发的证书转换为 .pfx (PKCS#12) 文件,以便将其作为灾难意外事故的一部分进行备份。.pfx 文件包含证书和相关密钥。在某些情况下,您可能需要传输证书和密钥以将其移动到其他计算机。例如,如果您有多个边缘传输服务器,并希望在这些服务器中发送和接收域安全电子邮件,则可以创建一个用于所有服务器的证书。在这种情况下,您必须在每个边缘传输服务器上为 TLS 导入并启用该证书。
只要将 .pfx 文件的副本安全存档,就始终可以导入和启用该证书。.pfx 文件包含私钥,因此通过将该文件保存在安全位置的存储媒体中进行物理保护非常重要。
Import-ExchangeCertificate cmdlet 总是将从 .pfx 文件导入的私钥标记为不可导出,了解这一点非常重要。该功能是特意设计的。
在使用 MMC 中的证书管理器管理单元来导入 .pfx 文件时,可以指定私钥的可导出性和强密钥保护。
重要
不要对用于 TLS 的证书启用强密钥保护。用户每次访问私钥,强密钥保护都会提示用户。对于域安全性,此处的用户是指边缘传输服务器上的 SMTP 服务。
返回顶部
步骤 3:配置出站域安全性
为了配置出站域安全性,必须执行三个步骤:
- 运行 Set-TransportConfig cmdlet 以指定要用来发送域安全电子邮件的域。
- 运行 Set-SendConnector cmdlet 以便在发送连接器(该发送连接器将把电子邮件发送到要用于发送域安全电子邮件的域)上设置 DomainSecureEnabled 属性。
- 运行 Get-SendConnector cmdlet 以验证以下事项:
- 发送连接器使用域名系统 (DNS) 路由邮件,该发送连接器将把电子邮件发送到要用于发送域安全电子邮件的域。
- FQDN 与要用于域安全性的证书的主题名称匹配或主题备用名称匹配。
因为以上三个步骤中所做的更改是全局性的,所以必须在内部 Exchange 服务器上进行更改。所做的配置更改将通过 Microsoft Exchange EdgeSync 服务复制到边缘传输服务器。
步骤 3a:在传输配置中指定发件人域
指定要用于发送域安全电子邮件的域是相对简单的事情。Contoso 管理员可以在内部 Exchange 2010 服务器上运行以下命令。
Set-TransportConfig -TLSSendDomainSecureList woodgrovebank.com
TLSSendDomainSecureList 参数接受多值的域名列表。Set-TransportConfig 命令会将 TLSSendDomainSecureList 的整个值替换为 cmdlet 中所提供的新值。因此,如果已经配置其他域,并要添加新域,则需要在列表中包括现有域,或使用临时变量。以下示例显示如何将 woodgrovebank.com 域添加到 TLSSendDomainSecureList 参数,而不覆盖任何现有值。
$TransportConfig = Get-TransportConfig
$TransportConfig.TLSSendDomainSecureList += "woodgrovebank.com"
Set-TransportConfig -TLSSendDomainSecureList $TransportConfig.TLSSendDomainSecureList
有关语法和参数的详细信息,请参阅 Set-TransportConfig。
步骤 3b:配置默认的发送连接器
Contoso 将使用名为 Internet 的默认 DNS 路由发送连接器以向其伙伴发送域安全电子邮件。由于其默认 DNS 路由发送连接器是默认 Internet 发送连接器,因此它使用 DNS 来路由邮件,而不使用智能主机。FQDN 已设置为 mail.contoso.com
。由于 Contoso 管理员创建的证书将 New-ExchangeCertificate 的 DomainName 参数设置为 mail.contoso.com
,发送连接器可以在不必提供其他配置的情况下使用这些证书。
如果您配置了用于测试的子域,则可能必须更新发送连接器的 FQDN 以便与创建的证书匹配(例如,subdomain.mail.contoso.com)。另一方面,如果您创建的证书在“主题”或“主题备用名称”字段中包含子域,则不必更新发送连接器的 FQDN。
因此,Contoso 管理员必须对发送连接器进行的唯一配置是设置 DomainSecureEnabled 参数。为此,Contoso 管理员需要在内部 Exchange 2010 服务器上对 Internet 发送连接器运行以下命令。
Set-SendConnector Internet -DomainSecureEnabled:$true
有关语法和参数的详细信息,请参阅 Set-SendConnector。
步骤 3c:验证发送连接器配置
完成配置更改之后,Contoso 管理员需要验证用于域安全性的发送连接器配置是否正确。为此,Contoso 管理员需要运行以下命令。
Get-SendConnector Internet | Format-List Name,DNSRoutingEnabled,FQDN,DomainSecureEnabled
此命令将列出为域安全性配置的相关参数,以允许 Contoso 管理员对配置进行验证。
有关语法和参数的详细信息,请参阅 Get-SendConnector。
返回顶部
步骤 4:配置入站域安全性
若要启用入站域安全性,必须执行两个步骤:
- 运行 Set-TransportConfig cmdlet 以指定要从中接收域安全电子邮件的域。
- 在边缘传输服务器上,使用 Exchange 命令行管理程序或 Exchange 管理控制台 (EMC) 对要从中接收域安全电子邮件的接收连接器启用域安全性。由于域安全性要求相互 TLS 身份验证,因此还必须对接收连接器启用 TLS。
步骤 4a:在传输配置中指定收件人域
指定要用于接收域安全电子邮件的域是相对简单的事情。若要指定该域,Contoso 管理员可以在内部 Exchange 2010 服务器或管理工作站的命令行管理程序中运行以下命令。
Set-TransportConfig -TLSReceiveDomainSecureList woodgrovebank.com
TLSReceiveDomainSecureList 参数接受多值的域名列表。Set-TransportConfig 命令会将 TLSReceiveDomainSecureList 参数的整个值替换为 Set-TransportConfig cmdlet 中所提供的新值。因此,如果已经配置其他域,并要添加新域,则需要在列表中包括现有域,或使用临时变量。以下示例显示如何将 woodgrovebank.com 域添加到 TLSReceiveDomainSecureList 参数,而不覆盖任何现有值。
$TransportConfig = Get-TransportConfig
$TransportConfig.TLSReceiveDomainSecureList += "woodgrovebank.com"
Set-TransportConfig -TLSReceiveDomainSecureList $TransportConfig.TLSReceiveDomainSecureList
有关语法和参数的详细信息,请参阅 Set-TransportConfig。
步骤 4b:配置接收连接器
对于接受来自要从其接收域安全电子邮件的域的邮件的每个边缘传输服务器,必须在其上配置接收连接器。Contoso 环境配置为在两个边缘传输服务器上有单个 Internet 接收连接器(Identity 参数值为 Internet)。因此,若要在与 Woodgrove Bank 发送或接收邮件的同时启用 TLS,则 Contoso 管理员必须确保在两个边缘传输服务器的默认 Internet 接收连接器上都启用了 TLS。为此,Contoso 管理员需在 mail1.contoso.com 和 mail2.mail.contoso.com 上运行以下命令。
Set-ReceiveConnector Internet -DomainSecureEnabled $true -AuthMechanism TLS
有关语法和参数的详细信息,请参阅 Set-ReceiveConnector。
还可以使用 EMC 配置接收连接器,步骤如下。
- 在边缘传输服务器上,打开 EMC,单击“边缘传输”,然后在结果窗格中单击“接收连接器”****选项卡。
- 选择从您要从其接收域安全电子邮件的域接受邮件的接收连接器(本例中为 Internet 连接器),然后在操作窗格中,单击“属性”。
- 在“身份验证”选项卡上,选择“传输层安全性 (TLS)”和“启用域安全性(相互验证 TLS)”,然后单击“确定”。
应当知道,指定身份验证机制为 TLS 并不能对所有入站连接强制应用 TLS。
由于以下原因,TLS 将强制应用于来自 Woodgrove Bank 的连接:
- Woodgrove Bank 由 Set-TransportConfig cmdlet 中的 TLSReceiveDomainSecureList 参数指定。
- 接收连接器上的 DomainSecureEnabled 参数设置为
$true
。
如果发送系统支持 TLS,则未在 Set-TransportConfig cmdlet 的 TLSReceiveDomainSecureList 参数上列出的其他发件人将只能使用 TLS。
返回顶部
步骤 5:测试域安全邮件流
配置域安全电子邮件之后,可通过查看性能日志和协议日志来测试连接。已成功在域安全邮件流路径上通过身份验证的邮件将作为“域安全”邮件显示在 Outlook 中。
性能计数器
域安全性功能包括“MSExchange 安全邮件传输”下面的以下性能计数器:
- Domain-Secured Messages Received(已接收到的域安全邮件)
- Domain-Secured Messages Sent(已发送的域安全邮件)
- Domain-Secured Outbound Session Failures(域安全出站会话失败)
可以用这些性能计数器为域安全邮件流新建计数器日志文件,以监视发送和接收的邮件数,还可以监视失败的相互 TLS 会话。有关如何创建和配置计数器日志的详细信息,请参阅“性能日志和警报”****MMC 管理单元中附带的帮助文件。
协议日志
可以查看发送和接收协议日志,以确定 TLS 协商是否已成功。
若要查看详细的协议日志,您必须在组织用于收发域安全电子邮件的连接器上将协议日志记录级别设置为 Verbose
。若要完成此操作,Contoso 管理员需在两个边缘传输服务器上运行以下命令。
Set-ReceiveConnector Internet -ProtocolLoggingLevel Verbose
若要在发送连接器上启用协议日志记录,Contoso 管理员需在内部 Exchange 服务器或管理工作站上运行以下命令。然后,配置更改将通过 Microsoft Exchange EdgeSync 服务复制到边缘传输服务器。
Set-SendConnector Internet -ProtocolLoggingLevel Verbose
有关语法和参数的详细信息,请参阅 Set-ReceiveConnector 和 Set-SendConnector 主题。
有关如何查看协议日志的详细信息,请参阅配置协议日志记录。
返回顶部