【Linux】源码编译安装openssl

版本:OpenSSL 3.0.11 19 Sep 2023 (Library: OpenSSL 3.0.11 19 Sep 2023)

系统:centos 7.6

步骤
下载安装包
wget https://www.openssl.org/source/openssl-3.0.11.tar.gz

我是下载到 /home/openssl 下面

解压并编译
解压安装包
tar -zxvf openssl-3.0.11.tar.gzcd openssl-3.0.11.tar.gz
设定OpenSSL安装路径
 ./config --prefix=/usr/local/openssl./config -t

可能出现问题

Can't locate IPC/Cmd.pm in @INC (@INC contains: /home/openssl/openssl-3.0.11/util/perl /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 . /home/openssl/openssl-3.0.11/external/perl/Text-Template-1.56/lib) at /home/openssl/openssl-3.0.11/util/perl/OpenSSL/config.pm line 19.
BEGIN failed--compilation aborted at /home/openssl/openssl-3.0.11/util/perl/OpenSSL/config.pm line 19.
Compilation failed in require at /home/openssl/openssl-3.0.11/Configure line 23.
BEGIN failed--compilation aborted at /home/openssl/openssl-3.0.11/Configure line 23.

这个错误提示表明在配置 OpenSSL 时缺少了 IPC::Cmd 模块。IPC::Cmd 模块是 Perl 的一个扩展模块,它用于在 Perl 脚本中执行系统命令。

yum install perl-IPC-Cmd
编译

需要有 gcc

make && make install
查看依赖库
cd /usr/local/openssl/binldd openssl

返回以下结果

linux-vdso.so.1 =>  (0x00007ffe44d8c000)
libssl.so.3 => not found
libcrypto.so.3 => not found
libdl.so.2 => /lib64/libdl.so.2 (0x00007ffbad08e000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ffbace72000)
libc.so.6 => /lib64/libc.so.6 (0x00007ffbacaa4000)
/lib64/ld-linux-x86-64.so.2 (0x00007ffbad292000)

注意 not found 的两行,意思是 libssl.so.3 和 libcrypto.so.3 找不到所依赖的库文件,需要手动去连接库文件,执行如下指令:

ln -s /usr/local/openssl/lib/libssl.so.3 /usr/lib64/libssl.so.3
ln -s /usr/local/openssl/lib/libcrypto.so.3 /usr/lib64/libcrypto.so.3

千万注意,你的版本不同,这边确实的动态库可能也会不同,不过都是这两个文件确实,看好版本就行

再执行

ldd openssl

返回以下结果

linux-vdso.so.1 =>  (0x00007fffeb1ea000)
libssl.so.3 => /lib64/libssl.so.3 (0x00007f2e79039000)
libcrypto.so.3 => /lib64/libcrypto.so.3 (0x00007f2e789c6000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f2e787c2000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f2e785a6000)
libc.so.6 => /lib64/libc.so.6 (0x00007f2e781d8000)
/lib64/ld-linux-x86-64.so.2 (0x00007f2e792de000)

这样就 ok 了

配置环境变量
sudo vim /etc/profile#在文件的末尾添加
export OPENSSL_PATH=/usr/local/openssl/bin
export PATH=$OPENSSL_PATH:$PATH:$HOME/bin
#保存并退出文件source /etc/profile
检查
openssl version -a

会出现下面结果

OpenSSL 3.0.11 19 Sep 2023 (Library: OpenSSL 3.0.11 19 Sep 2023)
built on: Fri Oct 20 07:59:03 2023 UTC
platform: linux-x86_64
options:  bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG
OPENSSLDIR: "/usr/local/openssl/ssl"
ENGINESDIR: "/usr/local/openssl/lib64/engines-3"
MODULESDIR: "/usr/local/openssl/lib64/ossl-modules"
Seeding source: os-specific
CPUINFO: OPENSSL_ia32cap=0xfffa32034f8bffff:0x18d19e27eb

这样就 ok 了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/115870.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网安周报|OpenSSF 推出恶意软件包存储库

1.OpenSSF 推出恶意软件包存储库 为了应对恶意开源软件包日益增长的威胁,开源安全基金会 ( OpenSSF ) 推出了一项名为“恶意软件包存储库”的新计划。该存储库可能会成为打击恶意代码的主要参与者,旨在增强开源软件生态系统的安全性和完整性。该存储库已…

深入理解JVM虚拟机第十二篇:JVM中的线程说明

文章目录 一:线程说明 1:线程概述 2:后台虚拟机主要线程 (一):虚拟机线程

软考系列(系统架构师)- 2020年系统架构师软考案例分析考点

试题一 软件架构(架构风格、质量属性) 【问题1】(13分) 针对该系统的功能,李工建议采用管道-过滤器(pipe and filter)的架构风格,而王工则建议采用仓库(reposilory)架构风格。请指出…

RAID和LVM配置指南:创建、扩容和管理RAID设备和逻辑卷的方法

文章目录 1. 简介1.1 什么是RAID和LVM1.2 RAID和LVM的作用和优势 2. RAID配置命令:mdadm2.1 安装mdadm2.2 创建RAID设备2.2.1 RAID 02.2.2 RAID 12.2.3 RAID 52.2.4 RAID 10 2.3 添加磁盘到RAID设备2.4 删除磁盘从RAID设备2.5 查看和管理RAID设备2.6 故障处理与恢复…

C语言文件操作(1)

C语言文件操作(1) 文章目录 C语言文件操作(1)一、理解文件1.概述2.分类①.正常角度②.文本文件和二进制文件 二、文件的打开和关闭1.流和标准流2.文件类型指针3.文件的打开和关闭以及使用类型 三、文件缓冲区 一、理解文件 1.概述…

【iOS】JSONModel的基本使用

文章目录 前言一、导入JSONModel二、JSONModel的基本使用1.基本用法2.模型集合3.模型导出为NSDictionary或JSON4.设置所有属性可选(所有属性值可以为空)5.下划线(蛇式)转驼峰命名法 前言 JSONModel 是一个用于 Objective-C 的开源库,它用于简…

Android View拖拽startDragAndDrop,Kotlin

Android View拖拽startDragAndDrop,Kotlin import android.os.Bundle import android.util.Log import android.view.DragEvent import android.view.View import android.view.View.OnDragListener import android.view.View.OnLongClickListener import android.w…

后台管理系统SQL注入漏洞

对于edu来说,是新人挖洞较好的平台,本次记录一次走运的捡漏0x01 前景 在进行fofa盲打站点的时候,来到了一个后台管理处看到集市二字,应该是edu站点 确认目标身份(使用的quake进行然后去ipc备案查询) 网…

寻找二叉树一个节点的后继节点

后继节点:中序遍历的后一个节点 普通二叉树:中序遍历得到一个list,时间复杂度O(n) 本题的二叉树:有父节点的指针,后继节点与原节点的距离为1,因此可以直接通过父节点找到下一个节点 优化:节点…

Mac 开机提示Google LLC 注册 无法登录进入系统

Google LLC 会在电脑启动时提示如下弹窗,并要求登录谷歌账户进行验证 此时很明显没有用来进行验证的账号,所以需要关掉这个验证程序 从日志里面可以看到LLC启动了一个Tiny.app的程序 只需要想办法把这个程序删掉即可 关机 按住 Command R 开机 进入R…

华为OD 机智的外卖员(100分)【java】A卷+B卷

华为OD统一考试A卷+B卷 新题库说明 你收到的链接上面会标注A卷还是B卷。目前大部分收到的都是B卷。 B卷对应20022部分考题以及新出的题目,A卷对应的是新出的题目。 我将持续更新最新题目 获取更多免费题目可前往夸克网盘下载,请点击以下链接进入: 我用夸克网盘分享了「华为O…

Openssl数据安全传输平台004:Socket C-API封装为C++类 / 服务端及客户端代码框架和实现

文章目录 0. 代码仓库1. 客户端C API2. 客户端C API的封装分析2.1 sckClient_init()和sckClient_destroy()2.2 sckClient_connect2.3 sckClient_closeconn()2.4 sckClient_send()2.5 sckClient_rev()2.6 sck_FreeMem 3. 客户端C API4. 服务端C API5. 服务端C6. 客户端和服务端代…

【算法优选】 前缀和专题——贰

文章目录 😎前言🌴[寻找数组的中心下标](https://leetcode.cn/problems/find-pivot-index/description/)🚩题目描述🚩算法思路:🚩代码实现 🎋[除自身以外数组的乘积](https://leetcode.cn/probl…

【MySQL架构篇】MySQL字符集、大小写规范及默认数据库

文章目录 1. 字符集与字符集比较规则2. 大小写规范3. 默认数据库4. 与文件系统相关 1. 字符集与字符集比较规则 MySQL有4个级别的字符集和比较规则,分别是 服务器级别数据库级别表级别列级别 当创建对应表或列未指定字符集时,默认会取其上一级别的字符…

stream流相关操作

stream真的没有什么好说的,filter、map这俩常用的程序可以说每天都要写好几遍,那么问题来了,为什么还要拿出来讲讲呢?当然不可能是因为想要划水,主要是工作中它的其他相关方法也有不少涉及。以下是按照不同需求涉及到的…

docker 安装 Centos7

1. 从docker 安装 Centos7 查看有哪些 centos7 系统:docker search centos72. 安装 centos7 docker pull docker.io/ansible/centos7-ansible3.使用镜像创建容器 docker run -itd -p 8022:22 --namevm01 -v /bodata:/bodata -h vm01 --privilegedtrue 688353a31…

#力扣:面试题 02.03. 删除中间节点@FDDLC

面试题 02.03. 删除中间节点 - 力扣(LeetCode) 一、Java /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val x; }* }*/ class Solution {public void deleteNode(List…

华为OD 字符串统计(全量和占用字符集)(100分)【java】B卷

华为OD统一考试A卷+B卷 新题库说明 你收到的链接上面会标注A卷还是B卷。目前大部分收到的都是B卷。 B卷对应20022部分考题以及新出的题目,A卷对应的是新出的题目。 我将持续更新最新题目 获取更多免费题目可前往夸克网盘下载,请点击以下链接进入: 我用夸克网盘分享了「华为O…

如何能通过表面挖掘到深层次的底层思维?

如何能通过表面挖掘到深层次的底层思维? 挖掘深层次的底层思维是一项复杂且细致的工作,通常涉及到个人反思、观察、沟通和分析等多个方面。下面是一些可能会对你有帮助的策略和方法: 1. 提问的艺术 五次为什么:这是一种简单而有…

flutter doctor检测环境,出现CocoaPods installed but not working

1. 安装flutter, 地址: 安装和环境配置 - Flutter 中文文档 - Flutter 中文开发者网站 - Flutter 2. 安装成功后,通过flutter doctor检测环境。以mac为例,出现了CocoaPods installed but not working 错误提示时,以下为解决方案: 2.1 rvm i…