我们专注于嵌入式
安全文件传输
国嵌 编著
公司地址:成都市牛王庙东恒国际 1 栋 2 期 701
技术咨询 QQ:550491596 技术交流 QQ 群:65212116
电话:028-88820953 网址:www.enjoylinux.cn
我们专注于嵌入式
版权申明
该资料版权归属成都国嵌信息技术
有限公司(简称“国嵌”)所有, 并
保留一切权力。非经国嵌同意(书面
形式),任何单位和个人不得擅自摘
录本手册部分或全部,违者我们将追
究其法律责任。
公司地址:成都市牛王庙东恒国际 1 栋 2 期 701
技术咨询 QQ:550491596 技术交流 QQ 群:65212116
电话:028-88820953 网址:www.enjoylinux.cn
我们专注于嵌入式
l 项目要求:
参见项目需求文档
l 项目器材:
软件:
1.安装了RHEL5的PC机或vmware虚拟机
2.openssl库文件(RHEL5已默认安装,如果没有安装需自
己下载安装包安装。)
硬件:PC机一台
l 实验步骤:
1. 服务器程序编译
由于参考代码是所有功能都在一个文件里面实现,所以编译命令
为gcc server.c o server lssl lpthread ,生成服务器可
执行文件server建议大家一个功能模块用一个.c文件实现,并写
出Makefile编译。
可以看到编译命令链接了两个库一个是大家熟悉的线程函数库,
另一个是我们不熟悉的实现加密传输的OpenSSL函数库。如果不加
上-lssl我们看会是什么样的情况。
公司地址:成都市牛王庙东恒国际 1 栋 2 期 701
技术咨询 QQ:550491596 技术交流 QQ 群:65212116
电话:028-88820953 网址:www.enjoylinux.cn
我们专注于嵌入式
可以看到报了很多函数接口或者变量没有定义的错误,下面我们
来介绍一下用OpenSSL实现加密传输的方法。
1.1 OenSSL
在OpenSSL文件夹里的代码文件夹中有一个实现加密传输功
能的编程范例程序(C-S)和对它的说明。
用openssl genrsa -out privkey.pem 2048 命令生成文件
privkey.pem
公司地址:成都市牛王庙东恒国际 1 栋 2 期 701
技术咨询 QQ:550491596 技术交流 QQ 群:65212116
电话:028-88820953 网址:www.enjoylinux.cn
我们专注于嵌入式
再用openssl req -new -x509 -key privkey.pem -out
cacert.pem -days 1095 命令生成文件cacert.pem
公司地址:成都市牛王庙东恒国际 1 栋 2 期 701
技术咨询 QQ:550491596 技术交流 QQ 群:65212116
电话:028-88820953 网址:www.enjoylinux.cn
我们专注于嵌入式
传输加密由 openssl 提供的库函数实现,openssl 库能做很多方面的
工作,我们用的传输加密只是它很小的一面。具体结构 C-S 文档上面
已经写出,下面我们来看一下代码的运行情况。
客户端运行情况:
公司地址:成都市牛王庙东恒国际 1 栋 2 期 701
技术咨询 QQ:550491596 技术交流 QQ 群:65212116
电话:028-88820953 网址:www.enjoylinux.cn
我们专注于嵌入式
从源码中能看出默认端口是 7838,运行的时候客户端会显示从服务
器获取到的证书信息。
服务器运行情况:
公司地址:成都市牛王庙东恒国际 1 栋 2 期 701
技术咨询 QQ:550491596 技术交流 QQ 群:65212116
电话:028-88820953 网址:www.enjoylinux.cn
我们专注于嵌入式
如果你对openssl编程有想了解更多的应用可以参考里面给出的文档
《openssl编程》和《openssl》中文简介等,本项目中用到的传输过
程中的加密只需知道上面部分即可。
2. 客户端编译
客户端编译命令gcc client.c o client lssl lpthread 生成
客户端可执行文件client
公司地址:成都市牛王庙东恒国际 1 栋 2 期 701
技术咨询 QQ:550491596 技术交流 QQ 群:65212116
电话:028-88820953 网址:www.enjoylinux.cn