OpenSSL动态链接库源码安装教程

 更新时间:2021年11月15日 15:10:24   作者:尘世中迷途小码农  
Openssl 是一个开放源代码的SSL协议的产品实现,它采用C语言作为开发语言,具备了跨系统的性能。这篇文章主要介绍了OpenSSL动态链接库源码安装,需要的朋友可以参考下

Openssl 是一个开放源代码的SSL协议的产品实现,它采用C语言作为开发语言,具备了跨系统的性能。调用Openssl的函数就可以实现一个SSL加密的安全数据传输通道,从而保证客户端和服务器之间数据的安全。

OpenSSL整个软件包大概可以分成三个主要的功能部分:SSL协议库、应用程序以及密码算法库。OpenSSL的目录结构自然也是围绕这三个功能部分进行规划的。作为一个基于密码学的安全开发包,OpenSSL提供的功能相当强大和全面,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。

如果程序需要使用OpenSSL的API,那么可以通过源码安装得到DLL或者SO库文件,这样就能在Windows和Linux环境下使用其API进行二次开发了。

下载源码

从Github上下载

请注意选择分支:

https://github.com/openssl/opensslhttps://github.com/openssl/openssl

icon-default.png?t=LA92

https://github.com/openssl/openssl

从官网下载

https://www.openssl.org/source/https://www.openssl.org/source/

icon-default.png?t=LA92

https://www.openssl.org/source/可以选择目前最新版本:openssl-1.1.1l.tar.gz

对于历史版本,可以从这里下载:https://www.openssl.org/source/old/。

这里我们下载 openssl-1.1.1l.tar.gz:

解压下载后的OpenSSL,分别存放到两个目录,用于在Windows下编译32位和64位版本,

安装ActivePerl

由于OpenSSL的配置是使用Perl写的,因此在Windows环境上编译时需要安装一个Perl环境,官方推荐的是ActivePerl。

下载ActivePerl:https://platform.activestate.com/ActiveState/Perl-5.32/distributions

如果官网下载不方便,可以从这里下载,http://xiazai.jb51.net/202111/yuanma/ActivePerl_jb51.rar

Windows下编译64位OpenSSL动态库

假设系统已安装VS,从开始菜单找到 “x64 Native Tools Command…”,点击右键,以管理员方式打开。

注:这里不能选错,如果选错后面编译可能会出现问题。

定位到64位OpenSSL源码的根路径:

C:\Users\wang xiaohui\Desktop\OpenSSL_1_1_1_l\openssl-1.1.1l_x64\openssl-1.1.1l

执行命令:

perl Configure VC-WIN64A no-asm --prefix="C:\Users\wang xiaohui\Desktop\OpenSSL_1_1_1_l\openssl-1.1.1l_x64\output"

执行命令:

nmake

执行命令:

nmake

执行命令:

nmake install

这样就可以在--prefix=指定的目录下找到编译后的内容了,

Windows下编译32位OpenSSL动态库

整体步骤和编译64位动态库相同,不同地方有两点,

需要选择命令行工具 “x86 Native Tools Command…

配置时需要执行下面命令

perl Configure VC-WIN32 no-asm --prefix="C:\Users\wang xiaohui\Desktop\OpenSSL_1_1_1_l\openssl-1.1.1l_x86\output"

Ubuntu 21.04 下安装OpenSSL动态库

注:确保当前环境已经安装好gcc和make等工具。

拷贝源码到路径:/home/sunny/work/build/openssl/openssl-1.1.1l

创建output目录:/home/sunny/work/build/openssl/output,并在源码根路径下执行下面命令:

./config --prefix=/home/sunny/work/build/openssl/output

执行命令:

make

执行命令:

make test

执行命令:

make install

此时在--prefix指定的目录下即可找到编译后的内容:

安装完成后直接执行bin下面的openssl命令可能会遇到如下问题:

这是因为无法找到动态链接库,可通过以下方法解决。

root身份执行以下命令添加库引用目录:

echo "/home/sunny/work/build/openssl/output/lib" >> /etc/ld.so.conf.d/libc.conf && ldconfig

此时就不会有问题了,

到此这篇关于OpenSSL动态链接库源码安装的文章就介绍到这了,更多相关OpenSSL动态链接库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 解析C++中临时对象的产生情况

    解析C++中临时对象的产生情况

    临时对象的产生和销毁都是有成本的,都会影响程序的执行性能和效率,所以如果能了解临时对象产生的原因,就可以提升程序的性能和效率,下面小编就来和大家聊聊临时对象产生的几种情况吧
    2023-06-06
  • C++生成随机数的实现代码

    C++生成随机数的实现代码

    这篇文章主要介绍了C++生成随机数的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • C/C++编程语言中的指针(pointer)你了解吗

    C/C++编程语言中的指针(pointer)你了解吗

    这篇文章主要为大家详细介绍了C/C++编程语言中的指针,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • 常用C/C++预处理指令详解

    常用C/C++预处理指令详解

    预处理指令提供按条件跳过源文件中的节、报告错误和警告条件,以及描绘源代码的不同区域的能力。使用术语“预处理指令”只是为了与 C 和 C++ 编程语言保持一致。在 C# 中没有单独的预处理步骤;预处理指令按词法分析阶段的一部分处理。
    2014-11-11
  • 聊聊Qt+OpenCV联合开发之图像的创建与赋值问题

    聊聊Qt+OpenCV联合开发之图像的创建与赋值问题

    这篇文章主要介绍了Qt+OpenCV联合开发之图像的创建与赋值问题,给大家介绍了图像的克隆及拷贝问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-01-01
  • mingw编译的windows命令行贪吃蛇示例

    mingw编译的windows命令行贪吃蛇示例

    这篇文章主要介绍了mingw编译的windows命令行贪吃蛇示例,需要的朋友可以参考下
    2014-04-04
  • 详解C++ 转换的非正式分类

    详解C++ 转换的非正式分类

    C++ 正式分类方法是直接按语法分类,分为:隐式转换和显示转换。这篇文章主要介绍了C++ 转换的非正式分类,需要的朋友可以参考下
    2022-01-01
  • C语言绘制雷达图的示例代码

    C语言绘制雷达图的示例代码

    常用的统计图有条形图、柱形图、折线图、曲线图、饼图、环形图、扇形图,其中还有一种雷达图的绘制也较难,本文为大家提供了雷达图的绘制方法,需要的可以参考下
    2024-02-02
  • C++结构体用法实例分析

    C++结构体用法实例分析

    这篇文章主要介绍了C++结构体用法,实例分析了默认构造函数,复制构造函数,运算符重载等使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-01-01
  • C语言内存函数 memcpy,memmove ,memcmp

    C语言内存函数 memcpy,memmove ,memcmp

    这篇文章主要介绍了C语言内存函数 memcpy,memmove ,memcmp,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09

最新评论