【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.gz

cd 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/bin

ldd 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 了

你可能感兴趣的:(Linux,linux,运维,openssl)