ubuntu下openssl测试环境构建与安全连接测试实例全解
2016-12-05 11:06
267 查看
一.安装openssl
sudo apt-get install openssl二.建立CA
1.进入目录
cd /usr/lib/ssl/miscls后可见该目录下有一个名为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地址和端口可以验证确实在不同主机上实现了安全连接访问。
相关文章推荐
- Linux 查看系统硬件信息(实例详解) ubuntu的测试环境
- docker实战1 (docker-toolbox的安装,docker基础命令详解[运行,容器导入/导出,镜像导入/导出,数据卷,网络],构建100个docker实例的测试环境)
- 在ubuntu 12.04中使用openvswitch+kvm 构建虚拟环境(真正的主机系统,可以运行多种测试应用)
- Ubuntu环境下Redis的安装与JAVA连接测试
- Ubuntu 14.04 下,Ontology 开发环境构建 、部署及测试
- WSE3.0构建Web服务安全(3):WSE3.0策略配置、证书、签名、与实例开发
- WSE3.0构建Web服务安全(1):WSE3.0安全机制与实例开发
- php adodb连接带密码access数据库实例,测试成功
- 轻松构建可复用的软件测试环境
- C#取的环境变量的测试实例源码
- 微软虚拟化技术-构建高效开发与测试环境(五)
- 常用的PHP本地测试环境构建软件
- [原创]如何有效构建测试环境
- 在Ubuntu上安装git - [测试环境]
- 微软虚拟化技术-构建高效开发与测试环境(二)
- 微软虚拟化技术-构建高效开发与测试环境(三)
- Ubuntu下的c++编程环境构建
- php adodb连接带密码access数据库实例,测试成功
- 谈jsp运行环境的构建和jdbc连接sql server2000数据库
- 构建可“复用”的软件测试环境