前面讲了这么多理论知识,其实真要操作起来还是很简单的,下面我们就利用证书来实现一个安全的Web站点,也就是当客户端在访问网站时使用https实现数据加密传输。
要实现这个功能,首先要了解一下SSL协议。
“SSL安全套接字层”是一套提供身份验证、保密性和数据完整性的加密技术,属于传输层的协议。准确点来说,SSL其实是一个位于应用层和传输层之间的协议,所以才称之为“套接字层”。
我们都知道在Web浏览器和Web服务器之间传输数据是使用HTTP协议,本来HTTP协议产生的数据是直接送给传输层的TCP协议,有了SSL这个套接字层之后,就要先送给SSL处理一下,然后再送给TCP,这也就称之为HTTPS(基于SSL的HTTP)协议。之所以要经过SSL先处理一下,其目的主要是为了能够在Web服务器和客户端之间建立一条安全通信通道,在这条安全信道中传输的数据都是经过加密的。
SSL安全信道的建立过程是:首先客户端向服务器发出连接请求;
服务器把它的数字证书发给客户端;
客户端生成会话密钥(对称式加密),并用从服务器得到的公钥对它进行加密,然后通过网络传送给服务器;
服务器使用私钥解密得到会话密钥,这样客户端和服务器端就建立了安全通道。
在安全信道建立好之后,在客户端与服务器之间传输的数据都是采用对称式加密,以提高通信效率,而对称式加密的密钥是通过非对称式加密的方式传送的,以保证会话密钥的安全性。
Web站点启用SSL之后,客户端在访问网站时必须使用“https:\\……”的URL形式,默认使用的端口号也不再是TCP 80,而是变成了TCP 443。