ubuntu下openssl测试环境构建与安全连接测试实例全解

版权声明:本文为博主原创文章,转载需要注明出处。 https://blog.csdn.net/px_528/article/details/53463371

一.安装openssl

sudo apt-get install openssl


二.建立CA

1.进入目录

cd /usr/lib/ssl/misc
ls后可见该目录下有一个名为CA.pl的文件
这里写图片描述

2.执行CA.pl脚本新建CA

sudo ./CA.pl -newca
这里写图片描述
之后提示输入根证书相关信息,只用输入密码和common name即可,这里我们使用CA作为common name,密码1234.
执行成功的效果如下图
这里写图片描述
这时我们再查看一下该目录,输入ls可见目录下多了一个文件夹demoCA,到此我们完成了CA的建立,CA的根证书,CA的自签名证书均存在于该目录中。
这里写图片描述


三.创建CA认证的服务器证书

1.创建未经CA认证的服务器证书与服务器CA认证请求文件

sudo openssl req -newkey rsa:1024 -out req2.pem -keyout sslserverkey.pem
回车后提示输入密码和信息,同样只需要输入common name即可,输入BUPT,效果如下:
这里写图片描述
同样输入ls查看可见生成了对应文件req2.pem和sslserverkey.pem,其中sslserverkey.pem为未经CA认证的服务器证书,req2.pem是其对应的CA认证请求文件
这里写图片描述

2.CA对服务器的CA认证请求文件进行认证生成sslservercert.pem

sudo openssl ca -in req2.pem -out sslservercert.pem

使用ls可见确实生成了sslservercert.pem
这里写图片描述
到此,服务器需要的证书都已经具备了。


四.生成CA认证的客户端证书

1.创建未经CA认证的客户端证书与客户端CA认证请求文件

sudo openssl req -newkey rsa:1024 -out req1.pem -keyout sslclientkey.pem
输入后输入密码和common name,这里使用BUPT-Client,最后用ls查看文件,效果如下:
这里写图片描述

2.CA对客户端的CA认证请求文件进行认证生成sslclientcert.pem

sudo penssl ca -in req1.pem -out sslclientcert.pem
使用ls可查看文件,效果如下
这里写图片描述
到此,客户端需要的证书都已经具备了。


五.客户端与服务器数据交互

1.启动服务器

sudo openssl s_server -cert sslservercert.pem -key sslserverkey.pem -CAfile demoCA/cacert.pem
这里写图片描述
完成后服务器处于监听状态

2.使用客户端发起安全连接

新建一个终端,进入对应目录,发起安全连接
Ctrl+Alt+T新建终端
cd /usr/lib/ssl/misc
sudo openssl s_client -CAfile demoCA/cacert.pem
之后,客户端可以得到服务器的证书,并且验证其合法性,验证成功后便可以传输数据了。
这里写图片描述
这里写图片描述

同样,服务器也会显示信息,
这里写图片描述

之后,我们在服务器和客户端输入字符即可实现数据传送。
客户端输入This is openssl test
服务器输入good luck
效果如下
这里写图片描述
在客户端终端按下Ctrl+C即可断开链接,服务器重新回到监听状态。
这里写图片描述


六.扩展到两台机器上进行测试

1.拷贝证书文件

将/usr/lib/ssl/misc下所有我们之前新建的文件打包成压缩文件后,拷贝到另一台主机上(拷贝的方法就不进行详细说明了),可以用U盘也可以用远程方式。
将拷贝后的文件解压到新主机的/usr/lib/ssl/misc(新主机需要安装openssl才有该目录,安装方法见博客最开始部分),这样两台主机的该目录下的内容实际上就相同了。


2.在新的主机上开启openssl服务器

这里新的主机主机名是ubuntu16
开启方式和原来在一台主机上的是一样的
这里写图片描述
为了我们用原来的主机能连接上来,需要查看新主机的ip地址
这里写图片描述
可见新主机ip是10.108.171.255并且目前服务器已经处于监听状态,默认的监听端口号是4433。


3.在原来的主机上使用openssl客户端连接服务器

首先输入以下命令
这里写图片描述
该命令与原来的客户端命令相比多了一个-connect参数用于指定要连接的ip和端口,这里就是我们新主机的ip和4433端口。
然后回车后实现连接:
这里写图片描述

此时,新主机上的服务器也会有相应的提示:
这里写图片描述

是不是有一种似曾相识的感觉,对的,因为连接成功了,和原来在单主机上测试的效果是一致的。

4.通信测试

直接在终端中输入数据即可交互
这里写图片描述
这里写图片描述


5.抓包分析

在客户端或服务器上新建终端使用tcpdump工具抓包分析,抓取一次客户端向服务器发数据和一次服务器向客户端发数据的信息。
这里写图片描述
从ip地址和端口可以验证确实在不同主机上实现了安全连接访问。

猜你喜欢

转载自blog.csdn.net/px_528/article/details/53463371