2018-2019-1 20165226_20165310_20165315 实验五 通讯协议设计
2018-2019-1 20165226_20165310_20165315 实验五 通讯协议设计
目录
一、任务一 Linux下OpenSSL的安装与使用
二、任务二
三、实验过程中遇到的问题及解决
四、实验感想
一、任务一 Linux下OpenSSL的安装与使用
**** (一)OpenSSL的安装 - 环境 OpenSSL最新版本下载参见[http://www.openssl.org/source/]- 安装过程
Linux下的应用大多可以直接使用,也可以获取源代码自己进行编译、安装,使用源代码安装的过程一般是:
configure
make
make install
- OpenSSL的安装也是这样。首先解压源代码:
tar xzvf openssl-1.1.0-pre1.tar.gz
- 然后进入源代码目录:
cd openssl-1.1.0-pre1
- 然后使用下列命令编译安装:
./configure
make
sudo make install
(二)OpenSSL的使用
-
OpenSSL应用程序
通过man openssl查看帮助文档。 -
OpenSSL密码算法库
编写一个测试代码test_openssl.c:
#include <stdio.h>
#include <openssl/evp.h>
int main(){
OpenSSL_add_all_algorithms();
return 0;
}
- 然后用下面命令编译:
gcc -o to test_openssl.c -I /usr/local/ssl/inlcude -L /usr/local/ssl/lib -ldl -lpthread
- 执行
./to;echo $?
,结果打印0
.
(三)结果如图
二、任务二
**** > 在Ubuntu中实现对实验二中的“wc服务器”通过混合密码系统进行防护实验过程:
- 编译
gcc -o server server.c -I /usr/local/ssl/include -L/usr/local/ssl/lib -lssl -lcrypto -ldl -lpthread
gcc -o client client.c -I /usr/local/ssl/include -L/usr/local/ssl/lib -lssl -lcrypto -ldl -lpthread
- 创建私钥和证书
openssl genrsa -out PK.pem 1024
openssl req -new -x509 -key PK.pem -out CA.pem -days 1095
- 运行
./server 7838 1 CA.pem PK.pem
./client 127.0.0.1 7838
三、实验过程中遇到的问题及解决
****-
问题一:在编译过程中遇到
openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
错误 -
解决过程:
这是由于openssl库的位置不正确造成的。需要执行如下指令:
ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
详见大神的博客中的解决方法。
- 问题二:在编译过程中遇到如下报错,且运行时报错找不到执行文件:
- 解决过程:
经过检查命令,发现原来是编译时忘记给执行文件命名,导致运行时找不到执行文件
四、实验感想
****这次实验比较简单,主要是要按照实验步骤,一步步深入理解Openssl编程。在实验中,我们小组三个人相互配合,遇到问题一起解决,虽然也犯了低级错误,但是最后实验的成功进行仍然体现了团队合作的优势。而且学姐的博客也给我们指引了道路,十分详细。