前面讲了这么多理论知识,其实真要操作起来还是很简单的,下面我们就利用证书来实现一个安全的Web站点,也就是当客户端在访问网站时使用https实现数据加密传输。

    要实现这个功能,首先要了解一下SSL协议。

“SSL安全套接字层”是一套提供身份验证、保密性和数据完整性的加密技术,属于传输层的协议。准确点来说,SSL其实是一个位于应用层和传输层之间的协议,所以才称之为“套接字层”。

我们都知道在Web浏览器和Web服务器之间传输数据是使用HTTP协议,本来HTTP协议产生的数据是直接送给传输层的TCP协议,有了SSL这个套接字层之后,就要先送给SSL处理一下,然后再送给TCP,这也就称之为HTTPS(基于SSL的HTTP)协议。之所以要经过SSL先处理一下,其目的主要是为了能够在Web服务器和客户端之间建立一条安全通信通道,在这条安全信道中传输的数据都是经过加密的。

SSL安全信道的建立过程是:

  1. 首先客户端向服务器发出连接请求;

  2. 服务器把它的数字证书发给客户端;

  3. 客户端生成会话密钥(对称式加密),并用从服务器得到的公钥对它进行加密,然后通过网络传送给服务器;

  4. 服务器使用私钥解密得到会话密钥,这样客户端和服务器端就建立了安全通道。

在安全信道建立好之后,在客户端与服务器之间传输的数据都是采用对称式加密,以提高通信效率,而对称式加密的密钥是通过非对称式加密的方式传送的,以保证会话密钥的安全性。

Web站点启用SSL之后,客户端在访问网站时必须使用“https:\\……”的URL形式,默认使用的端口号也不再是TCP 80,而是变成了TCP 443。

为支持SSL通信,必须为Web服务器配置证书。下面是在Web服务器上申请证书并安装的过程。

1. 生成证书请求

打开之前创建的Web服务器,以域管理员身份登录。

选中服务器,然后在中间的面板中打开“服务器证书”,点击“创建证书申请”。

CA证书服务器(6) 利用CA证书配置安全Web站点_第1张图片

输入网站的相关数据,注意“通用名称”文本框中必须输入网站所用的域名,否则客户端在访问网站时,将提示证书错误。

CA证书服务器(6) 利用CA证书配置安全Web站点_第2张图片

选择证书的加密算法和密钥长度。其中的“位长”是指网站公钥的长度,位长越长,安全性越高,但性能越低。这里都采用默认值。

CA证书服务器(6) 利用CA证书配置安全Web站点_第3张图片

为证书申请指定文件名和保存路径。单击“完成”按钮,证书申请文件创建成功,该文件是一个文本文件,里面包含了所生成的证书申请编码。

CA证书服务器(6) 利用CA证书配置安全Web站点_第4张图片

2. 提交证书申请

证书申请创建完成之后,打开IE浏览器,在地址栏中输入http://192.168.1.2/certsrv/”,注意这里必须以域管理员的身份访问证书服务器,打开证书申请页面,点击“申请证书”,然后再单击“高级证书申请”。

CA证书服务器(6) 利用CA证书配置安全Web站点_第5张图片

选择使用base64编码申请证书。

CA证书服务器(6) 利用CA证书配置安全Web站点_第6张图片

将刚才生成的证书申请文件中的内部全部复制到“保存的申请”中,将“证书模板”选择“Web服务器”,点击“提交”按钮。

CA证书服务器(6) 利用CA证书配置安全Web站点_第7张图片

企业根CA会自动颁发证书,点击“下载证书”,并将证书保存到指定的位置。

CA证书服务器(6) 利用CA证书配置安全Web站点_第8张图片

3. 安装证书

回到IIS管理器的“服务器证书”界面中,点击“完成证书申请”。

CA证书服务器(6) 利用CA证书配置安全Web站点_第9张图片

找到刚才下载的证书,并为其起一个好记的名称。

CA证书服务器(6) 利用CA证书配置安全Web站点_第10张图片

至此,Web服务器证书申请并安装成功。

CA证书服务器(6) 利用CA证书配置安全Web站点_第11张图片

4. 绑定证书并启用SSL

证书安装完成之后,下面需要将证书绑定到网站之上。

选中默认站点,点击右侧的“绑定”。在“网站绑定”对话框中点击“添加”按钮,将类型设置为“https”,端口为默认的443SSL证书设置为刚才安装的“web”。点击“确定”按钮之后,证书就绑定好了。

CA证书服务器(6) 利用CA证书配置安全Web站点_第12张图片

然后打开“SSL设置”界面,勾选“要求SSL”:

CA证书服务器(6) 利用CA证书配置安全Web站点_第13张图片

这样,在客户机上如果用http方式访问网站,便会被拒绝:

CA证书服务器(6) 利用CA证书配置安全Web站点_第14张图片

只有使用https方式才可以正常访问网站。

当然,如果在“SSL设置”中不勾选“要求SSL”,则客户端既可以使用https也可以使用http方式访问web站点。

5. 虚拟目录启用SSL

大多数情况下,我们并不需要对整个网站都启用SSL,而是只需要对网站中的某个版块(如交易支付页面)启用SSL。这时可以只对Web站点中的某个虚拟目录启用强制SSL设置。

下面在Web站点中创建一个名为“pay”的虚拟目录,并对其设置启用强制SSL

CA证书服务器(6) 利用CA证书配置安全Web站点_第15张图片

编辑站点首页文件Default.htm

CA证书服务器(6) 利用CA证书配置安全Web站点_第16张图片

这样在客户端可以直接使用http方式访问网站,但是当要访问pay子目录时,就会自动启用SSL