文章出处:黑色海岸线
随着网络服务不断地渗入到我们的生活,平时上网时我们经常要提供一些私人的保密信息,如自己的电话号码,身份证号码等。然而,通常情况下我们使用的HTTP协议会将我们这些私人信息以明文方式在网络上转发,不提供任何的加密措施。如果这些信息被不怀好意的人中途截获,就可以将我们的私人秘密一览无余。为此,很多网站都提供了SSL服务来加强网络机密信息传播的安全性。
在本文中,我们将一起来探讨如何使用Windows XP服务器版配合IIS来实现 SSL。
一.什么是SSL?
一般的初学者可能会对SSL这个词感到陌生,实际上,SSL(Secure Sockets Layer,安全套接字层)指的是一种国际标准的加密及身份认证通讯协议,它基于CA根证书与客户端证书的交叉验证,从而使客户机/服务器应用一种不能被窃听的方式通讯。通讯双方享受了SSL服务之后,两台主机之间就建立起了一条安全的,可信任的通讯通道。
举个最简单的例子,大家都很熟悉的MSN账号,当我们在
www.MSN.com键入自己的MSN账号后,浏览器提示:“即将通过安全连接查看网页,该WEB站点上的任何人都无法看到您与该站点的交换信息。”这就是说,我们与
www.MSN.com的信息交换都是在享受SSL服务的前提下进行的。
除了接入互联网的网站外,平时我们在公司内部的 Intranet 中,往往也通过提供WWW服务来公布信息,或允许员工通过登录公司的内部WEB站点实现对数据库的操作,此时,SSL服务同样可以在局域网内部配置使用。
二.提供SSL服务需要什么条件?
首先,我们要向CA(Certificate Agency,证书机构)申请一个CA数字根证书。CA数字根证书可以向拥有CA授权的机构申请,但我们如果只是加密局域网内部的信息,可以自己用Windows XP服务器版(正式名称是Windows.NET Enterprise Server)架设一个CA服务器,按照自己的规则颁发CA数字根证书。然后将数字证书安装到WEB服务器上,并通过支持SSL的浏览器访问此WEB站点,即可建立SSL安全通道。
目前,流行的IE、Netscape、Opera等浏览器均支持SSL。
三.实战 Windows.NET Server +IIS配置SSL服务
1.在 Windows.NET Server(Enterprise Server或Advanced Server均可)上安装好 IIS。打开“控制面板”──“添加/删除程序”──“添加/删除Windows组件”,在“Windows 向导”里选中“Internet 信息服务”,单击“下一步”,按照默认配置安装即可。
2.配置IIS的WEB服务。单击“开始”──“程序”──“管理工具”──“IIS 服务管理器”,在架设好的站点上(通常是“默认WEB站点”),单击鼠标右键,选择“属性”,在“WEB站点”选项卡的“IP 地址”下拉列表中给WEB站点分配合适的IP地址。在本实例中,是内部网络的 IP 地址:192.168.0.2,如图1。
图1
在“文档”选项卡中把首页选项添加入“Index.htm”,然后把网站内容拷入站点的“WWWROOT”目录下。这时候就可以打开浏览器,键入192.168.0.2,看看是不是能浏览到内部网络站点的首页。
3.架设CA服务器。CA服务器可以单独架设,也可以和WEB服务器共存。本实例中采取并存的方案。打开“控制面板”──“添加/删除程序”──“添加/删除Windows组件”,在“Windows 向导”里选中“证书服务”,如图2.单击“下一步”,由于考虑到Active Directory在局域网中的影响,我们选择“独立根CA”,如图3,单击“下一步”,填入CA的标志信息,其中至少要填入“CA名称”,最后是选择证书数据库的存放位置,一般取默认设置即可,单击“下一步”,开始安装CA服务。
图2
图3
4.使用IIS向CA提出证书申请。在IIS中打开WEB站点的属性,选择“目录安全性”,在“安全通信”中选择“服务器证书”,如图4,在“IIS 证书向导中”选择“创建一个新证书”,单击“下一步”,选择“现在准备请求,但稍后发送”,单击“下一步”,键入证书名称,建议取默认值,单击“下一步”,填入WEB站点的名称,如果站点在互联网上有合法的域名,就填入域名,否则就填入服务器的主机名称即可。最后是把证书请求加密保存在一个文件中,默认是C:\certreq.txt,单击“完成”,IIS 就完成了证书请求。
图4
5.使用CA验证证书请求,并给WEB服务器颁发证书。首先打开浏览器,键入“
Http://192.168.0.2/Certsrv/Default.asp”,选择“申请证书”,申请类型选择“高级申请”,单击“下一步”后要求选择证书申请的提交方式,我们选择“使用base64编码的PKCS #10文件提交一个证书申请”,单击“下一步”,会看到一个“证书申请”的表单,我们打开前些时候生成的certreq.txt,把全部内容都复制进去,单击“提交”,如图5所示,就会出现一个页面,告诉我们证书已经提交成功了,现在处于“挂起状态”。接下来,打开“程序”──“管理工具”中的“证书颁发机构”,打开“待定申请”,可以找到刚刚我们提交的证书申请。单击鼠标右键,选择“所有任务”──“颁发”,即可通过提交的证书申请。打开“颁发的证书”,可看到刚才申请证书已经颁发。如何领取证书呢?双击证书,切换到“详细信息”选项卡,点击“复制到文件”,即可启动证书导出向导,在“导出的文件格式”中选择“Base64编码”,单击“下一步”,指定文件名(在本例中我们取名为hero.cer)后即可导出成功,如图6。
图5
图6
6、使用IIS安装CA证书,开通SSL服务。CA证书颁发之后,WEB服务只需安装上CA证书,即可提供SSL服务。在IIS中打开WEB站点的属性,选择“目录安全性”,在“安全通信”中选择“服务器证书”,然后点击“处理挂起的请求并安装证书”,看到提示要求输入证书的名字与路径。此时选择我们刚刚获得的CA证书 hero.txt ,可以看到证书的详细信息,如图7,确认无误后单击“完成”,证书即已安装到WEB服务器上。最后,在WEB站点属性的“WEB站点标志”中,可以看到“SSL 端口”已经被激活,处于可选状态,我们填入SSL服务的默认端口 443 ,确定后所有配置即已大功告成,如图8。
6、使用IIS安装CA证书,开通SSL服务。CA证书颁发之后,WEB服务只需安装上CA证书,即可提供SSL服务。在IIS中打开WEB站点的属性,选择“目录安全性”,在“安全通信”中选择“服务器证书”,然后点击“处理挂起的请求并安装证书”,看到提示要求输入证书的名字与路径。此时选择我们刚刚获得的CA证书 hero.txt ,可以看到证书的详细信息,如图7,确认无误后单击“完成”,证书即已安装到WEB服务器上。最后,在WEB站点属性的“WEB站点标志”中,可以看到“SSL 端口”已经被激活,处于可选状态,我们填入SSL服务的默认端口 443 ,确定后所有配置即已大功告成,如图8。
图7
图8
现在,我们打开浏览器,输入“
Https://192.168.0.2”,(注意是Https,不是Http),就可以看到SSL服务所给出的回应,随后我们会看到浏览器下面出现一把小锁,这就是说,所有的交换信息活动都是在加密的通讯方式下进行了(如图9、10)。但是,此时我们会发觉浏览速度有所变慢,这是因为加密要消耗一定的系统资源。因此,SSL服务虽好,但对于整个WEB站点来说,也要有选择的使用,而不要使用户浏览一些普通网页也动辄看到SSL服务的提示,那样是得不偿失的。