SSL:Secure Socket Layer安全的套介子层

SSL的实现的一些功能_SSL实现为web服务器提供证书


SSL会话的建立是基于IP地址实现的;
SSL 协议的验证的具体过程
SSL 的握手协议让客户和服务器之间完成相互之间的身份认证,其主要过程如下:
1.浏览器发送一个连接请求给安全服务器。
2. 服务器将自己的证书,以及同证书相关的信息发送给客户浏览器。证书中包括标识、公钥、发证机关、防伪标识;
3. 客户利用服务器传过来的信息验证服务器的合法性,服务器的合法性包括:证书是否过期,发行服务器证书的 CA 是否可靠,发行者证书的公钥能否正确解开服务器证书的“发行者的数字签名”,服务器证书上的域名是否和服务器的实际域名相匹配。如果合法性验证没有通过,通讯将断开;如果合法性验证通过,将继续进行第四步。
4.用户端随机产生一个用于后面通讯的“对称密码”K,然后用服务器的公钥对其加密,然后将加密后的“密码”传给服务器。
5. 如果服务器要求客户的身份认证,用户可以建立一个随机数然后对其进行数据签名,将这个含有签名的随机数和客户自己的证书以及加密过的“密码”一起传给服务器。
6.服务器和客户端用相同的主密码即“通话密码”,一个对称密钥用于 SSL 协议的安全数据通讯的加解密通讯。同时在 SSL 通讯过程中还要完成数据通讯的完整性,防止数据通讯中的任何变化。
7.客户端向服务器端发出信息,指明后面的数据通讯将使用的步骤6中的主密码为对称密钥,同时通知服务器客户端的握手过程结束。
8.服务器向客户端发出信息,指明后面的数据通讯将使用的步骤6中的主密码为对称密钥,同时通知客户端服务器端的握手过程结束。
9.SSL 的握手部分结束,SSL 安全通道的数据通讯开始,客户和服务器开始使用相同的对称密钥进行数据通讯,同时进行通讯完整性的检验。

SSL的安装:
前提环境:一个作为宿主机的Linux;本文使用的是Redhat Enterprise Linux 5.8;
用yum -y install mod_ssl这个命令安装SSL这样就安装好了。
然后去实现上面的叙述的功能,
打开ssl的配置文件ssl.conf在这个里面启动跟虚拟机的会话功能。添加内容如下:
DocumentRoot "/web/site1"
ServerName www.magedu.com:443

去/etc/pki/CA目录下生产CA的私钥,建立CA之前先去修改CA的配置文件openssl.cnf.
首先CA的目录dir修改为dir=/etc/pki/CA
然后修改如下的内容:

SSL的实现的一些功能_SSL实现为web服务器提供证书_02保存退出

现在生成密钥用命令(umask 077; openssl genrsa 2048 > private/cakey.pem)
查看是否保存到cakey.pem这个文件中,用命令ls private查看,用命令ls -l private查看权限是否600

生产自签证书用命令 openssl req -new -x509 -days 3650 -key private/cakey.pem -out cacert.pem 内容如下:

SSL的实现的一些功能_配置httpd使用前面提供的证书和私钥_03这里生成的是CA的证书

现在生产CA的运行环境:
用命令mkdir certs newcerts crl
创建两个目录用命令 touch index.txt serial
因为serial需要起始号码所以用命令 echo 01 > serial
然后用ll命令查看一下生成的哪些东西
这样CA就建立好了现在能给WEB服务器发证。

去/etc/httpd/conf目录下给http生产密钥,颁发证书的请求以及让CA的给http签一下证书
先创建专门保存的一个目录命令: mkdir ssl,然后到这个目录下
生产密钥,命令:(umask 077; openssl genrsa 1024 > httpd.key)并且保存着httpd.key这个密钥文件中
生证书颁发申请请求,命令:openssl req -new -key httpd.key -out httpd.csr内容如下:

SSL的实现的一些功能_配置httpd使用前面提供的证书和私钥_04

这里一定要跟浏览器输入的名称保持一制,这样就完成了。

签证书:
命令:openssl ca -in httpd.cgr -out httpd.crt
然后出现这个显示:1 out of 1 certificate requests certifed,commit?[y|n] y
这是表示是不是要给它颁发证书,y表示yes,n表示no

现在去编译修改这个文件ssl.conf内容把证书和密钥写进去:

SSL的实现的一些功能_配置httpd使用前面提供的证书和私钥_05检查语法httpd -t,没有错就重启一下service httpd restart.

在浏览器中输入http://mageud.com访问一下看成功否
在输入:https://magedu.com访问一下
会弹出这个窗口,虽然有CA发证但是需要我们的信任,所以的的把这个证书放入电脑中才行

SSL的实现的一些功能_配置httpd使用前面提供的证书和私钥_06然后在在浏览器中输入https://magedu.com访问一下,你可以查看证书的信息

SSL的实现的一些功能_SSL实现为web服务器提供证书_07