之前通过设置基本身份验证,可以实现客户端在访问指定的虚拟目录时,必须要输入用户名和密码进行验证,但是基本身份验证的信息在网络中是明文传输的,我们可以通过为站点申请并安装证书,来实现数据的加密传输。实验环境中的CA证书服务器已经搭建好,这里只介绍在Web服务器上的证书申请和安装过程。
(1)生成证书请求
在Web服务器上右击需要申请证书的网站,打开属性界面,选择“目录安全性”选项卡,并单击“服务器证书”按钮,如图所示。
在“IIS证书向导”中选择“新建证书”,为证书指定名称并设置密钥长度,最后会生成一个名为certreq.txt的证书请求文件,将其保存。
注意,客户端在生成证书请求时,就已经产生了密钥对,其中公钥包含在证书请求中,私钥则存放在注册表里。
(2) 提交证书申请
在Web服务器上打开浏览器,在地址栏中输入“http://<CA服务器的名称或IP地址>/certsrv“,登录到证书服务器。在”欢迎“界面中,点击”申请一个证书“。在”申请一个证书“页面中,单击”高级证书申请“,在”高级证书申请“页面中,单击”使用base64编码……“,如图所示。
打开之前保存的申请文件certreq,txt,将其内容复制到“保存的申请“文本框中,如图所示。
在“证书挂起“页面中,显示证书已经申请成功,但必须等待CA服务器检查颁发证书。
(3)由CA颁发证书
在CA服务器“挂起的申请“中为Web服务器颁发证书。
(4) 在Web服务器上安装证书
在Web服务器上,通过IE再次访问CA服务器,在“查看挂起的证书申请的状态“页面中,单击”保存的申请证书“,将证书保存到磁盘中。证书的默认文件名为certnew.cer。
(5) 安装证书并启用SSL
在网站属性的“目录安全性“选项卡中,单击”服务器证书“按钮,在服务器证书向导中选择”处理挂起的证书请求并安装证书“,指定网站使用的SSL端口,默认为443。
这样客户端就可以通过HTTPS方式访问Web站点了,但此时还允许通过未加密的HTTP方式访问Web站点,如果需要强制Web站点使用HTTPS服务,则进行以下设置。
在“安全通信“页面中,选中”要求安全通道SSL“,表示只能使用HTTPS服务访问此Web站点,默认密码强度只有40位,如果需要更高的密码强度可以选中”要求128位加密“复选框。在”客户端证书“项中选中“忽略客户端证书”,这样用户不必提供证书就可以通过HTTPS连接到此Web站点。
这样设置之后,在客户端如果使用http的方式访问网站,便会出现错误提示。
改用https的方式可以成功访问网站,而且在IE的状态栏上会看到一个小锁图标,表示浏览器与网站之间已建立起经过SSL保护的安全连接。将鼠标指针移动到该图标上,可以看到现在的加密强度。