证书可以被用来加密客户端和服务器之间的通信。证书也可以用来验证它们。Exchange 2007 使用 X.509 证书来进行验证和加密通信。X.509证书使用Telecommunication Standardization Sector ( ITU-T) 标准
一个X.509证书是通过CA颁发的,CA通过绑定公钥来指定辨别名称,使用传统的X.500格式,或者指定被称为 SAN的多主机名。
在Exchange 2007中有一些组件是依赖证书来进行加密,验证或者两个同时进行。在这篇文章中,我会就Exchange 组件使用证书来一个综述,然后深入点看看Exchange那个默认的自签名证书,第二部分会讲讲申请证书时名字的需求,最后第三部分,我们来看看Exchange中有关证书创建,管理和删除的cmdlets.
证书在Exchange 2007 组件中的使用
Exchange 2007 的各个角色安装的过程中(CAS,UM, Edge 和 hub),Exchange 默认会生成一个自签名的证书,这样一些需要证书的组件就可以正常工作了。
下图展示了安装各个服务器角色中生成的那个自签名证书,这个证书会被一些服务使用,比如 IIS, SMTP, POP, IMAP, 和 UM.
Figure 1: 安装Exchange 2007 HUB, CAS, UM server 过程中生成的那个自签名证书
AD站点之间传输层协议的安全性
Exchange 2007 集线器传输服务器角色使用证书来加密AD站点之间的数据,如果两个位于不同站点的HUB通信,必定是加密的,这是不可配置的。
为了看到哪个证书被用于不同站点间的HUB服务器加密,我们可以在HuB上打开站点间的SMTP 协议日志。 在下图中,你可以看到使用命令 Set-TransportServer.
Figure 2: 设置 IntraOrgConnectorProtocolLogging 参数为详细
当我们把站点连接器日志设置为详细的时候 (IntraOrgConnectorProtocolLoggingLevel 设置为 verbose),协议日志就会在发送连接器的日志中加入此内容。当我们从站点B发一封信到站点A,查看一下日志,就会发现 站点B的HuB 服务器 Ex2007SE 使用了目标站点HUB提供的证书,用来保证传输层的安全。
Figure 3: AD站点间的发送协议日志 (Send Protocol Log )
我们快速来看一下 HUB服务器上的用于TLS的证书。下图中可以看到一个自签名的证书被使用了
EdgeSync
一旦配置了Hub和Edge的同步,两台服务器都使用证书来加密通信, 两个证书都会被用来提供直接的信任。直接信任是一种验证身份的方式,当对方提供的证书出现在 AD(对HUB来说)或 ADAM/LDS (对Edge来说)中时,证书可以被用来做验证。当EdgeSync开始时,请求的证书会被发布在正确的位置。
随机性传输层安全
任何时间,当一个SMTP服务器打开一个到Exchange 2007 HUB/Edge的链接的时候,Exchange 通过提供证书来允许 随机传输层安全(opportunistic TLS)。
域安全性
证书还可以被hub/edge 服务器用来对伙伴组织提供加密和身份验证。
客户端访问服务器和证书客户端访问
证书被用来加密CAS和它的不同客户端之间的通信,默认情况下SSL被下列功能使用:
-
Outlook Web Access
-
Outlook Anywhere
-
Exchange ActiveSync
-
POP3
-
IMAP4
-
Exchange Web Services as Autodiscover, EWS, and Unified Messaging
默认情况下唯一一个没有用证书的VD是OAB(脱机地址簿)
Figure 6: OAB虚拟文件夹没有使用SSL
基于证书的身份验证
配置基于证书的身份验证是可能的,这样,当访问CAS时 就可以允许客户端使用个人证书来做验证。 详细信息请参考:http://msexchangeteam.com/archive/2008/10/07/449942.aspx
统一消息服务器和证书
当UM发送一封语音邮件到HUB的时候,证书被UM用来加密通信。证书来被用来加密发往 UM IP网关的SIP 和 RTP的信息。当使用OCS Office Communications Server 时,证书也要被用到,因为OCS 和别的服务器的通信都是加密的。
自签名证书是怎么一回事?
当你部署 Exchange 2007 时,除了邮箱服务器,其它的服务器角色都会生成一个自签名的证书,被IIS, SMTP, POP3, IMAP4, and UM等服务使用。
Exchange自签名证书的特点
我们来看看自签名证书的一些特色
自签名证书有效期仅一年
从下图中,我们可以看到自签名证书的有效期只有一年,到期后,我们可以更新一下(renew).
为了更新这个证书,我们要用到cmdlet New-ExchangeCertificate. 如果你先使用了Get-ExchangeCertificate 来得到证书结果, 你就可以管道传输这个对象给 New-ExchangeCertificate, 这样的话会生成一个具有同样设置,被同样服务启用的新的证书.
下图中,你可以看到证书是怎样被更新的
Exchange 2007 CAS只允许IIS服务使用一个证书,对其他服务则可以使用多个证书,当多个证书存在的时候,Exchange会根据一些条件来选择使用证书,这在第二部分中会讲到。
默认情况下自签名证书会有两个SAN
Exchange 2007 安装的时候建立自签名证书,它的common name 设置为服务器的Host名字,SAN设置为Host名字和FQDN名。
Figure 9: 自签名证书的主题和 CertificateDomains
其实可以给自签名证书创建一个另外的 SAN,从来让它适用于Exchnage组织.
下图中,我们使用cmdlet New-ExchangeCertificate 创建一个common name 为webmail.proexchange.global,SAN为主机名和FQDN名的证书。
如果你想要导出这个自签名证书给用户使用,不要忘记加入布尔型参数PrivateKeyExportable, 并把它设置为true.
第二部分我们会回来讨论证书需要的名字,第三部分,我们将要讨论有关cmdlet的细节。
自签名证书只被它的颁发者信任
关于自签名证书很重要的一点是它只被颁发者所信任,如果配置不当,这将使Exchange的有些功能不可用,来看看你是否需要用自签名证书:
-
Outlook Anywhere 和 Exchange ActiveSync 不支持自签名证书.
-
使用Autodiscover web 服务时,域中的Outlook 2007 客户端不会检查 证书的颁发者是否被信任,但是没有加入域的计算机会抱怨证书没有被信任。如下图.
-
当Outlook 2007 客户端(包括加入域的和不加入域的)使用CAS提供的Exchange Web 服务(EWS)的时候,会提示这个证书是一个不被信任的颁发者颁发的,下图显示了outlook 请求忙闲信息时的弹出框。
-
微软支持使用自签名证书,但是限于内部使用的一些情况,比如:
- 加密站点间HUB服务器之间的SMTP连接
- 加密HUB和Edge之间的SMTP连接
- 加密Hub 和 Edge EdgeSync时同步的用户信息
- 加密UM和Hub之间的连接
- 加密UM 和OCS之间的SIP 和RTP连接(这需要OCS信任Exchange作为证书颁发者)
- 加密内部客户端到Exchange的访问 (POP,IMAP,Outlook Web Access). -
如果你不需要Exchange在安装的时候生成证书,可以从命令行安装的时候加入参数NoSelfSignedCertificates. 这个参数只有安装CAS和UM服务器角色时用,如果没有证书,那么服务器和客户端之间的通信时不加密的,就是说,不安全的。
管理Exchange 2007 证书 (二)