Openssl-环境准备

7月23日:OpenSSL的32位和64位编译,Windows和Linux系统的支持。

7月24日:OpenSSL源码调试与结构

OpenSSL

SSL作为一种协议,通常会与其它协议一同使用。

主要起到的作用就是在通讯的时候,将通讯的内容进行加密。

开源免费。本身内嵌了很多算法,除了实训安全数据传输,借助OpenSSL可以在写代码的时候帮我们高效完成任务。

  • Windows系统环境准备VS2022

  • Windows系统环境准备Perl5

  • Windows系统环境准备masm

    (NASM全称The Netwide Assembler)

打开x86 Native Tools Command Prompt

perl Configure VC-WIN32

image-20250723164831785

nmake

nmake install #安装好后有一个拷贝的过程

识别一个库是32位还是64位?

还是打开VS的Native Tools Prompt Command,使用dumpbin /Headers <文件名>

动态库和静态库的区别

Windows的动态库与静态库

动态库:A->B->D 比较小,需要完整的依赖顺序

->C

  • 工具箱之ProcessExplorer

  • Windows高级编程全集视频课程

OpenSSL源码结构说明

  • Crypto文件夹,包含了OpenSSL主要的源代码

  • apps文件夹,OpenSSL可执行文件的源码,生成后的Openssl可执行文件.

其中的openssl.exe作为OpenSSL的命令行工具

  • 有三处配置的地方:Configurations,config,configure

  • crypto占80%以上的重要性,包括各种算法的实现

  • demos:放了各种各样的示例

  • docs:帮助文件,man手册

  • engines:加密引擎。可以换成 硬件加速卡(比如 Intel QAT、/dev/crypto)、国密卡、甚至 纯汇编优化版本

  • exporters/external:一些脚本工具

  • include:里边是各种头文件

  • test:很多很多的单元测试代码

关于使用openssl库的常见问题解决

常见错误:error while loading shared libraries: libcrypto.so.1.1: connot open shared object file:

No such file or directory

问题原因:

OpenSSL安装的默认位置:/usr/local/lib64

可执行文件链接库读取位置:/usr/lib64

解决方法:

1.临时改变动态库读取的路径 export LD_LIBRARY_PATH=<libcrypto.so所在路径>:$LD_LIBRARY_PATH
2.永久改变动态库读取路径

编辑/etc/ld.so.conf

在“include ld.so.conf.d/*.conf”下方增加”/usr/local/lib64”

保存后,执行/sbin/ldconfig -v

3.复制动态库到/usr/lib64

1
2
3
4
ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so
ln -s /usr/local/lib64/libssl.so /usr/lib64/libssl.so
cp /usr/local/lib64/libcrypto.so /usr/lib64/libcrypto.so
cp /usr/local/lib64/libssl.so /usr/lib64/libssl.so

4.安装到/usr/lib64

make uninstall 卸载

打开openssl的MakeFile文件,找到LIBDIR,默认为LIB64,将其改为../LIB64

如何使用OpenSSL的静态库

gcc demo.c <静态库路径> -ldl -lpthread -o static_demo.out


Openssl-环境准备
https://43.242.201.154/2025/07/24/Openssl-环境准备/
Author
Dong
Posted on
July 24, 2025
Licensed under