在访问Web站点时,如果没有较强的安全措施,用户访问的数据是可以使用网络工具捕获并分析出来的。在Web站点的身份验证中,有一种基本身份验证,要求用户访问输入用户名和密码时,是以明文形式发送密码的,蓄意破坏安全性的人可以使用协议分析程序破译出用户名和密码。那我们该如果避免呢?可利用SSL通信协议,在Web服务器上启用安全通道以实现高安全性。
试验拓扑
在安装证书服务之前,我已经在服务器上建了WEB站点,并配置了DNS服务器。
一:安装证书服务
·打开“控制面板”---“添加/删除windows组件”。勾选“证书服务”复选框
·企业根CA:需要AD服务,即计算机在活动目录中才可以。
企业从属CA:域中的另一台证书服务器上
独立根CA:服务器可以在AD中,也可以不在AD中。
·在此CA的公用名称中输入CA的名称,一般是域名称。
·设置证书数据库以及日志的路径。(如果要卸载证书服务,必须删除证书数据库,否则无法再次安装证书服务)
·安装完成后,会在IIS管理器“默认站点”中添加一虚拟目录。并在浏览器中输入 [url]http://www.benet.com.cn/certsrv[/url] 时出现microsoft证书服务页面
二:生成证书申请
·打开“IIS管理器”右击“默认网站”选择“属性”,在“目录安全性”选项卡下单击“服务器证书”按钮,开始证书的申请。
注:如果可以直接联系到网络中的CA(一般是企业CA),则可以选择“立即将证书请求发送到联机证书颁发机构”,此后就不需要生成证书申请这步了
·输入单位信息、部门,单击下一步
·公用名称中输入Web站点的域名
·填写国家、地区等详细资料
·输入“证书请求的文件名”
三:申请、下载证书
·上一步已经生成了证书的申请,此时我们需要申请证书(如果在生成证书申请中选择“立即将证书请求发送到联机证书颁发机构”,不需要这一步。)具体方法:用记事本打开“证书请求的文件”(c:\certreq.txt)并复制所有内容。
在浏览器中输入“[url]http://www.51cto.com/certsrv[/url]”打开microsoft证书服务,并单击“申请一个证书”
选择“高级证书申请”
在“高级证书申请”窗口中,选择第二项(使用base 64.......)
在“提交一个证书申请”窗口中,选择“Base-64......”,并将刚刚复制的内容粘贴到文本框。单击"提交"按钮
·颁发证书。
打开“管理工具”中的“证书颁发机构”,在证书颁发机构中点击“挂起的申请”,右击右边的任务,选择“所有任务”---“颁发”
这样CA给Web颁发了证书
注:在安装证书服务时,如果选择“企业根CA”则不需要颁发证书,直接处于“颁发状态”,如果选择“独立CA”则必须颁发证书。
·下载证书。
再次打开microsoft证书服务,选择“查看挂起的证书申请的状态”,在查看挂起的证书申请的状态窗口中单击“保存的申请证书.....”
如果此时证书还没有被颁发,或颁发了还未被通知,出现若下页面
如果此时证书已颁发,勾选"Base 64 编码",并单击“下载证书”,完成证书的下载。
四:在Web服务器上安装证书
·打开"IIS管理器"---右击“默认网站”选择属性---打开“目录安全性”选项卡,并单击“服务器证书”,开始安装证书
·选择证书下载的目录
·设置SSL使用端口,默认为443
·查看安装的证书概要信息,单击下一步---完成,完成了证书的安装
·完成证书的安装后,在“目录安全性”选项卡下单击“安全通道”的“编辑”按钮,出现“安全通信”对话框,在安全通信对话框中勾选“要求安全通道(SSL)”、“要求128位加密”前的复选框。
忽略客户端证书:无论用户是否拥有证书,都将被授予访问权限,客户端不需要申请和安装客户端证书。
接受客户端证书:用户可以使用客户端证书访问资源,但证书并不必需。客户端,客户端不需要申请和安装客户端证书。
要求客户端证书:服务器在将用户与资源连接之间要请求客户端证书。客户端必需申请和安装客户端证书。
五:使用客户端测试