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