使用过EXCHANGE服务器的人都会知道,采用Outlook客户端连接到Exchange服务器(MAPI方式),会有很多除邮件以外的功能,比如说日历,公共文件夹等,现在由于多数公司的结构都是总部和分支机构为不在同一个LAN内,这就导致了远程用户不能访问邮件服务器服务器,您也许会说,我可以把EXCHANGE的POP3以及HTTP方式启用,远程用户用户就可以使用这两种方式进行信箱的登录了,但是,尽管如此,这基本上只能具有邮件邮件的功能,您又会说,我用HTTP的的OWA方式访问EXCHANGE服务器,基本上和本地本地LAN内的OUTLOOK有相同的功能,那我可以负责任的告诉你,你看到的仅仅是表象表象,OWA方式访问EXCHANGE,和使用OUTLOOK直接(MAPI)连接服务器仍然有很大的差别,这也就是为什么MS会提供RPC OVER HTTP方案的最根本原因。
目前,为了能够使远程用户采用OUTLOOK的MAPI方式直接连接到EXCHANGE上进行办公办公,现在的解决方案只有两个,第1个就是采用VPN的方式,这里不再介绍。
第二种就是MS在WINDOWS 2003以及EXCHANGE2003中提供的新功能RPC OVER HTTP。
我在写这个文章的时候,对于MS提供的RPC OVER HTTP部署实施的文档,已经研究了N次次,然而也没有一次成功过的,现在再回头看一下,还是觉得MS目前目前提供的RPC-HTTP参考文档并不完善,里面很多地方都漏掉了,这就导致了很多人按照MS的指导操作仍然无法顺利完成。
下面我就详细介绍我的实验以及实际生产环境。
我以实验环境为例子来介绍如何操作的(都是采用MS的virtual server 2005来建立的,这个软件非常棒,有兴趣的人可以用这个软件来建立自己的实验环境)。
我的实验环境是DC 1台,Exchange 3台,其中2台做了群集,做邮件系统的后端,另外1台EXCHANGE 做前端。
我们先介绍一下这个实验环境的网络参数
DC(Windows server 2003 enterPRise edition)
ip addr:172.16.0.1 FQDN:dc.test.com
包含以下服务:域控制器, dns server, wins server;
EXCH1(Windows server 2003 enterprise edition)
Ip addr:172.16.0.2 FQDN:exch1.test.com
包含以下服务:Exchange Server 2003 enterprise Edition,群集节点1,exchange群集名称mailsrv,exchange群集IP地址:172.16.0.4;
EXCH2(Windows server 2003 enterprise edition)
Ip addr:172.16.0.3 FQDN:exch2.test.com
包含以下服务:Exchange Server 2003 enterprise Edition,群集节点2,exchange群集名称mailsrv,exchange群集IP地址:172.16.0.4;
EXCH3(Windows server 2003 enterprise edition)
Ip addr:172.16.0.5 FQDN:exch3.test.com
包含以下服务:Exchange Server 2003 enterprise Edition,群集节点2,exchange群集名称EXCH2003;
以上服务器中,DC这个服务器担任的角色有DC和GC(全局编录),EXCH1和EXCH2两台服务器做群集成mailsrv.test.com为exchange的后端,EXCH3为这个exchange组织的前端。
服务器都准备好了,那么我们如果要实现整个RPC OVER HTTP,需要的其它条件如下:
服务器端:
Windows Server 2003 + Exchange Server 2003
推荐安装Exchange SP1,GC需要运行于Windows Server 2003之上。
客户机端:
Windows xp SP1 (需要补丁包 Q331320) + Outlook 2003 SP1或者
Windows XP SP2 + Outlook 2003 SP1或者
Windows 2003 SP1+ Outlook 2003 SP1(其实客户机如果是Windows2003,不安装SP1也可以,推荐安装)
下面我们看一下,对于Exchange服务器,需要做哪些配置。
一、证书服务
首先,我们需要在整个域中创建一个证书服务器,这里我们选择了Windws 2003中的证书颁发机构工具安装自己的证书颁发机构。
要在Windows 2003域中安装证书服务器,可以通过下面的步骤进行安装
控制面板=添加/删除程序=添加/删除Windows组件 =证书服务
安装时,选择“企业根”。
我们这里首先介绍前后端结构中的实现。
二、Exchange前后端结构中RPC-HTTP的实现
一般来说,Exchange前后端架构中,总是以Exchange前端服务器作为RPC Proxy,后端服务器作为RPC Server。客户端通过前端进行连接。因此我们只需要在前端服务器上安装RPC Proxy,颁发证书,配置IIS中的RPC虚拟目录等,之后在安装了Exchange 2003 SP1后,可以配置RPC-HTTP的拓扑结构。
1、配置RPC-HTTP拓扑 下面我们来看如何操作,首先,由于安装了Exchange 2003 SP1,再打开Exchange管理器(ESM)后会看到如下界面,将前端调整为RPC-HTTP拓扑结构中的前端,将后端调整为RPC-HTTP拓扑结构中的后端即可。
同样,将后端服务器的RPC-HTTP属性调整为RPC-HTTP后端服务器即可。
做完以上步骤后,需要手工的设置其它项目。
2、安装RpcProxy
对于前后端服务器的环境,需要在前端服务器上安装RPCProxy组件,这个组件可以通过
控制面板=添加删除程序=添加/删除WINDOWS组件=网络服务=HTTP代理上的RPC
3. EXCHANGE的虚拟站点申请证书
在前端Exchange服务器exch3上,打开IIS服务管理器,浏览到默认站点,打开默认站点的属性页面,切换到“目录安全性”,点击”服务器证书”,打开证书向导。
在证书向导中,选择“申请一个新证书”=立即发送请求到一个在线的证书服务器=填入相关信息=完成向导。
请注意,在填写“公用名”字段或“颁发给”字段时,务必使用这台服务器在Internet上的FQDN名称,即这个名称要与Internet上可用的RPC代理服务器的URL相同。这个将被Outlook客户端使用,以验证服务器的身份。如果出现证书与客户端尝试连接的名称不匹配的情况,连接将被断开而没有任何通知。也就是说,如果我的前端exchange服务器在Internet上的名称为mail.test.com,那么exch3申请的证书也需要是这个全称。
证书申请成功并安装后,可以点击查看证书,以查看证书。我们需要确保其中“证书目的”栏目中,有且仅有“确保远程计算机的身份”。
4、调整RPC虚拟目录的身份验证方式
在Exchange服务器上,打开IIS服务管理器,浏览到默认站点=RPC,打开RPC的属性页面,切换到目录安全性,点击“身份验证和访问控制”中的编辑,打开“身份验证方法 ”对话框。
在身份验证方法对话框中,去掉“启用匿名访问”选项的勾,选择”集成Windows身份验证”和”基本身份验证”选项。关闭所有对话框。
5.检查Exchange服务的配置
默认情况下,下面的注册表项目都是正确的,为了保证能够顺利的实施RPC-HTTP方案,请再次检查以下相关信息是否正确。 在Exchange服务器上,打开注册表编辑器,检查下面的键值:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSExchangeIS\Parameterssystem
Value name: Rpc/HTTP Port
Value type: REG_DWord
Value data: 0x1771 (Decimal 6001)
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSExchangeSA\Parameters
Value name: HTTP Port
Value type: REG_DWORD
Value data: 0x1772 (Decimal 6002)
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSExchangeSA\Parameters
Value name: Rpc/HTTP NSPI Port
Value type: REG_DWORD
Value data: 0x1774 (Decimal 6004)
以上操作都是在Exchange的前端服务器上进行的,下面需要修改其它设置。 6、配置GC 编辑注册表: 在Exchange组织所在的所有GC服务器,上,打开注册表编辑器,浏览到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters
在右边添加下面的数据:
键值: NSPI interface protocol sequences
键值类型: 多字符串值
键值数据: ncacn_http:6004
在我提供的例子中,唯一的DC就是GC,因而该操作是DC 7 Exchange前端服务器中修改RpcProxy配置 打开注册表编辑器,浏览到
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Rpc\RpcProxy
在右边双击ValidPorts,进入编辑状态,然后将值修改为:
ServerNETBIOSName:6001-6002;ServerFQDN:6001-6002;ServerNetBIOSName:6004;ServerFQDN:6004;GCNETBIOSName:6004;GCFQDN:6004
利用Exchange服务器的机器名替换其中的ServerNETBIOSName 利用Exchange服务器的完全合格域名(FQDN)替换其中的ServerFQDN 利用GC服务器的机器名替换其中的GCNETBIOSName 利用GC服务器的完全合格域名替换其中的GCFQDN 注意:如果组织中有多台GC,需要都添加到数据中;如果是群集环境,需要将EXCHANGE群集的NETBIOS和FQDN以及各个节点的NETBIOS和FQDN都添加进去。
在我的实验环境中,有一个DC,netbios为dc,FQDN为dc.test.com,Exchange后端为一个群集,其netbios为mailsrv,FQDN为mailsrv.test.com;节点1的netbios名字exch1,FQDN为exch1.test.com;节点2的netbios名字为exch2,FQDN为exch2.test.com
那么对于我的实验环境,这个值应该设置为:
mailsrv:6001-6002; mailsrv.test.com:6001-6002; mailsrv:6004; mailsrv.test.com:6004; exch1:6001-6002; exch1.test.com:6001-6002; exch1:6004; exch1.test.com:6004; exch2:6001-6002; exch2.test.com:6001-6002; exch2:6004; exch2.test.com:6004; dc:6004; dc.test.com:6004;
设置完成后,重新启动Exchange服务器上的IIS Admin Service及相关服务。 至此,前后端结构且后端实施了群集技术的RPC OVER HTTP配置在服务器端就顺利完成了,假如您只有单台Exchange Server,不具有前后端结构,那么您需要的操作也很简单,在以上1-7的步骤中,只需要将第1步中选择这是RPC-HTTP后端拓扑的一部分,2-7步是完全相同的即可。 下面来介绍一下客户端的配置。
三、OUTLOOK 2003配置RPC OVER HTTP的实现
由于是通过HTTP代理RPC请求,所以需要客户端信任HTTP服务器,也就是RPC OVER HTTP的前端服务器。 那么我们至少需要两个证书。 第1个是根CA的证书,第2个是RPC-HTTP前端WEB服务器的证书。 1. 证书的安装 我们来看一下如何将这两个证书进行导入。 1. 在安装有证书服务的服务器上,系统路径下会产生一个后缀名为CRT的文件,这个文件包含了这个证书颁发机构的信息。我们需要将这个文件复制到客户端上。 2. 在客户端,双击这个CRT文件,然后点击Install Certificate,将打开证书导入向导。
然后下一步
选择“根据证书类型,自动选择证书存储区”,继续下一步。完成后,对于安全警告,选择接受:
1. 这样我们就在客户端导入了CA的根证书
2. 接下来需要导入Exchange服务器证书,也就是在服务器配置中,通过IIS界面为默认站点颁发的证书,方法是:
打开IE浏览器,输入:https:// mail.test.com/exchange
这时IE会弹出提示对话框,要用户对证书进行确认。在上面点击“查看证书”,然后点击“安装证书”,按照向导提示,接受默认设置导入证书。
3. 关闭所有IE窗口后,重新使用IE打开https://mail.test.com/Exchange 连接到服务器,如果不再弹出关于服务器证书的警告信息,就说明已经成功导入,客户端开始信任该服务器提供的证书。 4. 另外的验证方式是打开IE浏览器----》工具---》Internet选项---》内容----》证书,查看“其他人”和“受信任的根证书颁发机构”如果出现上面的两个证书,查看这两个证书如果没有警告信息或红*,则说明导入成功。 注:如果发现安装的Exchange前端服务器证书无法在客户端生效,那么您可以通过在与证书服务器在相同LAN的的一个主机通过http://my certification server/certsrv进行用户证书的申请,并将该用户证书复制到该计算机进行安装,即可解决此类信任问题。在我的实验环境中,由于在DC上安装了证书服务,因而访问地址为http://dc.test.com/certsrv进申请。 2 .Outlook配置文件 1. 在Outlook客户端,打开控制面板=邮件 2. 点击---显示配置文件 3. 点击---添加,为新的配置文件设置一个名称,点击OK 4. 在向导中,选择”添加新邮件帐户”=Microsoft Exchange Server 输入服务器名称(注意,此处是后端服务器的名称,在我的实验环境中,应该输入mailsrv.test.com)和用户名称,取消”使用缓存Exchange模式”选项,然后点击右下角的”其它设置”,如果出现不能解析名称错误,点击“取消”忽略。(此解析过程时间可能会很长)
1. 在Microsoft Exchange Server对话框中,切换到“连接”选项卡
2. 选择“使用Internet Explorer或第三方拨好程序连接”,同时勾选“使用HTTP连接到我的Exchange邮箱”,之后点“Exchange代理服务器设置”。
1. 在该界面的Exchange代理服务器https://中输入“mail.test.com”(此处为RPC代理服务器,在我的实验环境中为前端mail.test.com),同时对“在快速网络中,首先使用HTTP连接,然后使用TPC/IP连接”和“在低速网络中,首先使用HTTP连接,然后使用TPC/IP连接”进行勾选,在“代理服务器验证设置”中,选择“基本身份验证”,确定后退出。
确定后,即可完成OUTLOOK的RPC-HTTP客户端的配置。
3.验证配置
在运行中输入outlook /rpcdiag,回车,选择刚才建立的配置文件,然后输入用户名和密码,如果在网络连接框中显示了HTTPS的信息,则说明配置完全正确。
|本文档参考了MS的标准文档,同时也咨询过MS的一位姓吴的资深工程师,在此也表示感谢。 以上是整个RPC OVER HTTP的配置过程,如果有什么问题,希望多交流。