OpenSSL源码编译及Debug

**

1. 环境

Linux 5.19.0-14-generic 22.04.1-Ubuntu

2. 所需工具

gcc version 11.3.0 (Ubuntu 11.3.0-1ubuntu1~22.04) cmake version 3.22.1

3. 步骤
3.1 获取openssl源码
方法可以git clone获得源码,或者直接去GitHub上下载压缩包,GitHub网址:https://github.com/openssl/openssl
使用git clone方法:

lan@lan:~/openssl/code/openssl$ git clone git@github.com:openssl/openssl.git

3.2 源码的安装三步骤:配置,编译,和安装
安装分为动态库安装和静态库安装
静态库安装:
3.2.1 配置

lan@lan:~/openssl/code/openssl$ ./config --prefix=/usr/local --openssldir=/usr/local/ssl

–prefix指定安装路径; --openssldir配置参数路径,是在–prefix指定路径下的子目录。
注:–prefix后的路径可以指定自己新建的文件目录,比如–prefix=/usr/local/openssl,这样所有文件都会在/usr/local/openssl路径下,如果想删除时比较好操作。
执行完后:
在这里插入图片描述
3.2.2 编译和安装

lan@lan:~/openssl/code/openssl$ make && sudo make install

动态库安装:
基本步骤同上三步骤:配置,编译,安装

lan@lan:~/openssl/code/openssl$ ./config -d shared --prefix=/usr/local --openssldir=/usr/local/ssl
lan@lan:~/openssl/code/openssl$ make clean
lan@lan:~/openssl/code/openssl$ make && sudo make install

还需要加入动态链接库路径

lan@lan:~/openssl/code/openssl$ su - root
root@lan:~# echo "/usr/local/lib" >> /etc/ld.so.conf
root@lan:~# cat /etc/ld.so.conf
ld.so.conf内容:

include /etc/ld.so.conf.d/*.conf

/usr/local/lib

root@lan:~# ldconfig -v

4. 检查版本

lan@lan:~/openssl/testdata$ openssl version

在这里插入图片描述

如果你安装了两个版本且出现not found情况:
在这里插入图片描述
执行:

lan@lan:/usr/local/lib64$ export LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH

这是将/usr/local/lib添加到环境变量中,确保能使用该路径下的库,再检查openssl版本:

lan@lan:/usr/local/lib64$ openssl version -a

在这里插入图片描述
这是临时修改环境,只针对当前会话有效,如果要永久修改,需要修改 ~/.bashrc 或者 ~/.bash_profile文件,保存、退出

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib64

执行生效source .bashrc或者 source .bash_profile文件

5. Debug
使用gdb来debug openssl demo
5.1 选择demo下的cipher,也可以其他文件夹

cd /home/lan/openssl/code/openssl/demos/cipher

5.2 编译:
demo下面的每个文件夹下的测试源码,都可独立编译

lan@lan:~/openssl/code/openssl/demos/cipher$ make clean && make

在这里插入图片描述
5.3 运行

lan@lan:~/openssl/code/openssl/demos/cipher$ ./aesgcm

在这里插入图片描述
5.4 使用gdb debug

lan@lan:~/openssl/code/openssl/demos/cipher$ gdb aesgcm

在这里插入图片描述
就可以按需使用gdb 命令来debug了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值