本文出自 “ 岳雷的微软网络课堂” 博客, http://yuelei.blog.51cto.com/202879/88041
本文出自 51CTO.COM技术博客
用
ISA
发布安全
Web
站点
到目前为止,我们已经对
ISA
发布
Web
站点进行了很多介绍,但还没有涉及到安全
Web
站点。其实在很多领域,安全
Web
站点都由于高安全性而受到广泛应用,例如在电子商务,电子邮件,
OA
等用用中基本都会使用安全站点来加强对数据的保护。既然安全站点如此重要,今天我们就来讨论一下如何用
ISA2006
来发布安全
Web
站点。
用
ISA2006
发布安全站点并不是一件困难的事,相反,
ISA2006
为管理员发布安全站点提供了灵活且强大的技术支持。以往防火墙在发布安全
Web
站点时,处理方法并不令人满意。由于安全
Web
站点对
HTTP
数据进行了加密,这使得防火墙无法对数据内容进行分析,当然也没办法判断这些数据是否不利于安全。防火墙遇到这种情况,往往就采用“隧道”模式,如下图所示,“隧道”模式让外网的访问请求直接通过防火墙抵达内网的安全站点,防火墙对访问请求直接放行,透明通过。这种方法自然无法让管理员满意,买个防火墙发布网站不就是希望利用防火墙过滤有害数据嘛,现在防火墙让加密数据透明通过,那防火墙还有什么用呢,不如直接把安全网站放到外网好了。
ISA2006
对发布安全站点做了很好的改进,
ISA2006
在发布安全站点时可以采用“桥接”模式,如下图所示,这种模式可以让
ISA
对外网的发来的加密数据先进行解密,然后过滤检查,发来的数据被证实没问题了才会被重新加密送往内网的
Web
服务器。显然,桥接模式比隧道模式更能发挥防火墙的功效,对网站的安全更为有利。
ISA
并不是随随便便就能启用桥接模式,发布安全
Web
站点和发布
Web
站点有所不同,区别就在于安全
Web
服务器必须提供证书用于数据加密。在桥接模式下,
ISA
要对外网发来的加密的数据进行解密,这就要求
ISA
必须拥有证书及配套私钥。例如
ISA
发布的安全站点是
perth.contoso.com
,那
ISA
必须拥有名为
perth.contoso.com
的证书以及配套的私钥,如果没有证书,
ISA
无法对外网的访问者证明自己就是他们要访问的
perth.contoso.com
,如果没有私钥,
ISA
则无法对加密数据进行解密。因此,
ISA
启用桥接模式发布安全网站的关键就在于如何让
ISA
拥有证书以及私钥,我们解决这个问题的方法是让安全
Web
服务器导出证书及私钥,然后
ISA
再进行导入操作。
实验拓扑如下图所示,
Perth
是内网要发布的安全站点,
Denver
是内网的域控制器兼
CA
服务器,
Beijing
是
ISA2006
服务器,我们看看如何用
ISA
发布安全
Web
站点。
一
创建
CA
服务器
既然
Perth
上的
Web
站点是安全
Web
站点,那
Perth
的站点肯定要有证书,谁来发这个证书呢?
CA
!我们既可以选择去国际
CA
公司申请证书,也可以自己创建
CA
服务器来颁发证书。平时经常有朋友问这个问题:到底应该选择去国际
CA
申请证书还是自己创建一个
CA
来颁发呢?这个问题我觉得应该根据被发布安全站点的用途来决定,如果你发布的安全站点针对的群体是互联网上的用户,那我认为还是应该去国际
CA
申请证书,这样申请到的证书自动会被所有的用户所信任,使用起来很方便。否则你自己创建
CA
颁发证书,但互联网上其他用户都不信任,每个用户都要手工信任你创建的
CA
,这样就很麻烦了。当然,去国际
CA
申请是要付出代价的,一年估计要
1W
多
RMB
,这银子花得很心疼的。如果发布的安全站点主要是给公司员工使用的,那就可以自己创建
CA
来颁发证书了,因为公司员工人数有限,即使手工信
CA
任也不用花太多时间。这时自己创建的
CA
就能体现出使用方便,节省成本的优点了。
回到本例中,我们准备在
Denver
上创建一个
CA
服务器,用以在域内为计算机颁发证书。在
Denver
上依次点击
开始-设置-控制面板-添加或删除程序-添加
/
删除
Windows
组件,如下图所示,勾选“证书服务”,这时会弹出对话框提示你安装证书服务后不能改变计算机名称以及身份,选择“是“按钮。
CA
类型设置为企业根,这样可以更好地利用域的管理优势。
CA
命名为
TESTCA
。
证书数据库的存储路径取默认值即可。
安装程序提示需要重启
IIS
服务,在插入
Win2003
的安装光盘后,如下图所示,安装结束。
创建完
CA
服务器后,这个服务器必须得到其他计算机的认可,域内的计算机如本例中的
Perth
和
Beijing
都不用担心,组策略会告诉他们
TESTCA
是个可以信任的
CA
服务器。如果你觉得组策略生效时间太长,还可以运行
Gpupdate/force
来加快组策略生效时间。域外的计算机如本例中的
Istanbul
就需要手工信任这个
CA
服务器了,具体操作方法如下。我们先把
Denver
的网站用
ISA
发布出来,然后在
Istanbul
上访问
[url]http://denver.contoso.com/certsrv[/url]
,如下图所示,网站要求进行身份验证,我们输入域管理员的用户名和口令。
通过身份验证后我们可以通过网站访问
CA
服务器了,如下图所示,选择“下载一个
CA
证书,证书链或
CRL
”。
如下图所示,选择“下载
CA
证书”,网站弹出文件下载的对话框,选择“保存”。
把下载的
CA
根证书保存到
C:\certnew.cert
。
有了
CA
根证书之后,我们要把它手工导入被信任的根证书颁发机构中。在
Istanbul
上运行
mmc
,如下图所示,在
mmc
控制台中选择“添加删除管理单元”。
如下图所示,点击“添加”,选择添加“证书”管理单元。
证书管理单元负责对计算机账号管理证书。
在新添加的证书管理单元中定位到“受信任的根证书颁发机构-证书”,如下图所示,在所有任务中选择“导入”。
启动证书导入向导。
将
CA
根证书文件导入,如下图所示。
选择证书的存储区域。
证书导入后,如下图所示,
TESTCA
已经成了被
Istanbul
信任的根证书颁发机构。
至此,我们完成了
CA
服务器的创建以及对
CA
服务器的信任,
切记,所有访问安全
Web
站点的计算机都要信任证书颁发机构。
二
为安全
Web
站点申请证书
创建了
CA
服务器之后,我们就可以为
Perth
的
Web
站点申请证书了。在
Perth
的
IIS
管理器中查看默认站点的属性,如下图所示,切换到站点属性的“目录安全性”标签,点击“服务器证书”。
弹出服务器证书申请向导。
选择“新建证书”。
由于之前创建的
CA
类型是企业根,因此我们可以直接在线申请证书。
证书的名称和加密位数取默认值即可。
单位和部门参数也不重要。
证书的公用名称至关重要,公用名称一定要和外网用户访问此安全网站时所使用的域名完全匹配。
如果不匹配,安全
Web
站点将发布失败。
填写证书的地理信息。
安全
Web
站点使用默认的
443
端口。
从
Active Directory
中选择所使用的证书颁发机构。
证书申请完成,
CA
已经给
Perth
的
Web
站点颁发了证书,现在
Perth
已经是一个安全
Web
站点了。
三
导出证书
接下来我们要在
Perth
上把申请到的证书导出给文件,然后再让
ISA
服务器导入。在
Perth
的
IIS
管理器中切换到默认
Web
站点的“目录安全性”标签,如下图所示,点击“查看证书”。
切换到证书的“详细信息”属性,如下图所示,点击“复制到文件”。
出现证书导出向导。
一定要连同私钥一起导出。
导出为
pfx
格式文件。
输入私钥保护密码。
把证书及私钥导出为
c:\perth.pfx
。
四
导入证书
我们把
perth
导出的证书文件复制到
ISA
服务器上,然后
ISA
就可以进行证书的导入操作了。参考在
Istanbul
上用
mmc
创建证书管理单元的步骤,在
ISA
上也创建一个证书管理单元管理计算机账号的证书,如下图所示,右键单击“个人”容器,在所有任务中选择“导入”。
出现证书导入向导。
选择导入
perth.pfx
文件。
输入
pfx
文件中的私钥保护口令。
将导入的证书放到个人存储中。
如下图所示,导入成功,
ISA
服务器上有了
perth.contoso.com
的证书以及相关私钥。
五
创建安全
Web
站点发布规则
万事俱备,只欠东风。我们现在可以在
ISA
服务器上发布
Perth
上的安全
Web
站点了。如下图所示,在
ISA
服务器管理器中选择新建“网站发布规则”。
为发布规则取名。
访问请求满足规则要求
ISA
则允许访问。
发布类型为发布单个网站。
使用
SSL
加密
ISA
与安全
Web
站点之间的数据。
内部站点的名称为
perth.contoso.com
,注意,内部站点的名称应该和安全站点证书中的公用名称完全一致,否则会导致发布失败。
从根目录开始发布整个网站。
安全站点的公共名称也应该和证书中的公用名称完全一致。
由于没有监听
443
端口的侦听器,因此我们选择“新建”。
出现
Web
侦听器创建向导,我们为新创建的
Web
侦听器取个名字。
侦听器与外网访问者之间的数据需要用
SSL
加密。
侦听器对外网进行监听。
由于侦听器需要对外网访问者的数据进行加密,因此侦听器需要提供证书,如下图所示,点击“选择证书”。
在侦听器中选择使用导入的
perth.contoso.com
证书,这样外网访问者才会相信
ISA
服务器就是他们要访问的
perth.contoso.com
。
侦听器选择证书之后,继续下一步。
本例中发布的安全
Web
站点不需要用户进行身份验证,发布其他的安全
Web
站点就未必不需要身份验证了,例如发布
Exchange
就需要进行身份验证。
本例中不需要设置单点登录。
在发布规则中使用新创建的
Web
侦听器。
安全
Web
站点没有委派
ISA
对客户端进行身份验证。
此规则适用于所有用户。
完成安全
Web
站点发布规则,呵呵,终于结束了。
好了,一切都就绪了,我们在
Istanbul
上测试一下,如下图所示,在
Istanbul
上访问
[url]https://perth.contoso.com[/url]
,系统弹出对话框提示即将通过安全连接查看网页。
访问结果正常,
OK
,发布安全
Web
站点成功!
发布安全
Web
站点时问题基本都处在证书上,要么是证书的公用名称写得不对,要么导出证书的格式有问题,要么有些计算机不信任证书颁发机构等等,如果能先理解证书原理,那发布安全
Web
站点时就可以事半功倍了。