试验前先来介绍下RPC(Remote Procedure Call Protocol),远程过程调用协议,端口不固定。微软喜欢用RPC协议,客户机会连接到rpc服务器的135端口,然后135端口告诉客户机rpc此时使用的端口号,客户机就可以找到rpc了。这要是在内网中使用没什么,但是由于一些其他不安全的因素也是利用rpc在公网上传播,所以ISP在公网上将rpc给禁用了(这点电信和网通好像都不承认),rpc在公网上会莫名其妙的不能使用了。为了还可以安全使用,我们可以用最常用的http或https对其进行封装。今天我们就介绍下在用outlook访问Exchange邮箱时用RPC OVER HTTPS封装RPC。
实验环境和前面Exchange文章的差不多,只不过现在Florence上又多出一个服务,CA证书服务.具体是试验背景图如下
将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_RPC
实验过程:
一、在AD上创建CA
二、给Exchange服务器申请证书
三、用HTTP封装RPC和对其配置
四、OUTLOOK客户端的配置
一、在AD上创建CA
我们先来将环境搭建完成,添加“证书服务”,如下有安装证书的警告,确认前面的准备工作已经完成。然后继续
将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_Exchange_02
创建一个企业根CA,下一步
将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_HTTPS_03
写上此CA的公用名称,我们这里写BingquanCA,根据你的需要而定,下面的默认即可,
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_邮箱_04
下面的是证书数据库和日志存放的位置,按照默认的即可,
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_HTTPS_05
下面出现一个提示,要完成安装,需要暂时停止IIS服务,我们选择“是”,
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_RPC_06
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_Exchange_07
二、给Exchange服务器申请证书
成功完成CA的创建后,我们在Exchange服务器berlin上刷新一下组策略,好让服务器快速信任证书颁发机构,实际环境中不用这样,我们这里主要是想快一些,
将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_Exchange_08
刷新完策略后,我们再来打开IE属性,选择“内容”—“证书”
将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_邮箱_09
然后选择“受信任的根证书颁发机构”找找看,已经有了我们新建的“BingquanCA”
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_Exchange_10
既然Exchange服务器berlin信任了证书颁发机构,下面我们就为berlin申请一个证书,打开IIS,按下面的操作,选择“默认网站”—“属性”
将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_RPC_11
打开默认网站属性,选择“目录安全性”选项卡,然后选“服务器证书”
将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_Exchange_12
进入到Web服务器证书向导界面,下一步,
将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_Exchange_13
到服务器证书界面,选择“新建证书”
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_HTTPS_14
下面是延迟或立即请求界面,实际工作环境下,多是选“现在准备证书请求,但稍后发送”,但是我们实验中为了节省时间选“立即将证书请求发送到联机证书颁发机构”,
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_RPC_15
下面进入到名称和安全性设置,名称我们还用默认的“默认网站”,不再修改了,位长是密钥的长度,1024位即可,
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_HTTPS_16 
下面是证书的单位和部门,我这里根据我们的情况写的,你也要根据自己的情况而定,
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_HTTPS_17
站点公用名称,可以使用NetBIOS名称,但最好还是用完全合格域名,注册的公用名称一致,
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_Exchange_18
这里写一些基本的地理信息,
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_OVER_19
网站使用的SSL端口,443,然后下一步,
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_OVER_20
选择证书颁发机构,已经默认给我们选择好了,
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_RPC_21
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_HTTPS_22
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_Exchange_23
证书申请完后,我们在默认网站属性里,找到目录安全性选项卡,查看证书,
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_邮箱_24
下面就是给Exchange服务器颁发的证书信息,
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_邮箱_25
然后在Istanbul上,试着用https加密方式访问一下,
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_Exchange_26
可以安全的连接上了, 说明证书已经生效了。
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_RPC_27
三、用HTTP封装RPC和对其配置
1.先来在Exchange服务器上安装HTTP代理上的RPC服务组件,过程如下图所示
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_HTTPS_28
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_邮箱_29
安装完后,IIS的默认网站下会多出一个虚拟目录Rpc
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_邮箱_30
2.HTTP代理Rpc的默认识别端口是100~5000,而Exchange需要使用6000以上的端口,如6001、6002、6004。这时候就需要我们来修改一下其端口范围,最简单的方法就是修改一下注册表,打开注册表编辑器,在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Rpc\RpcProxy目录下找到ValidPorts,如果忘记了在什么位置,直接搜一下100~5000就可以搜出来了,具体见下面的图,
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_RPC_31
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_Exchange_32
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_Exchange_33
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_HTTPS_34
将原有的100~5000改为100~7000即可,也可以改下前面的NetBIOS名为完全合格域名,见下
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_OVER_35
3.还有改下Rpc虚拟目录使用的验证方式。在IIS中,打开Rpc属性,在目录安全性选项下,找到第一个编辑,打开
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_HTTPS_36
不适用匿名和集成的身份验证方式,改为基本身份验证,这时候给出一个提示,选用此认证方式将不加密,可能不安全,但是后面又说此警告不适用于HTTPS连接,我们就是用的HTTPS方式连接的,认证不加密,我们用https给它加密,和没说这个警告一下,不用管它,确定要继续,选“是”
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_RPC_37
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_Exchange_38
四、OUTLOOK客户端的配置
我们在Istanbul上打开outlook,按住Ctrl键同时点到outlook右下角的图标,可以看到有连接状态(不按Ctrl键没有连接状态一项),打开
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_邮箱_39
可以看到现在的是用传统的Rpc方式访问的,
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_HTTPS_40
我们打开控制面板,找到邮件,打开邮件设置,选择“电子邮件帐户”
将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_RPC_41
然后选择“查看或更改现有电子邮件帐户”
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_Exchange_42
进入电子邮件帐户界面,选择“更改”
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_RPC_43
此时和安装outlook时的做法一样,不过前面服务器名和用户名写好后,不用下一步,选“其他设置”
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_OVER_44
然后选到“连接”选项,勾选“使用HTTP连接到我的Exchange邮箱”,然后再打开下面的“Exchange代理服务器设置”,
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_RPC_45
在Exchange代理服务器设置里面,按照下面图示所示选择连接方式和代理服务器验证方式,其中代理服务器验证设置一定要选用“基本身份验证”,
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_OVER_46
然后以用户user2的身份登录,
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_RPC_47
进去邮箱后,同样的方式再来看看其连接状态,
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_HTTPS_48
OK!已经是https是方式访问了。
 将outlook从RPC改为RPC OVER HTTPS方式访问Exchange邮箱_OVER_49
到这里,我们已经成功的用HTTPS封装完成了RPC,这种方式很普遍,也很实用。类似的解决方法有:用http封装远程桌面连接(封装终端),SSL ×××也是用HTTPS封装。