OpenSSL官网

openssl-3.3.0.tar.gz

安装编译环境

yum -y install gcc gcc-c++ zlib-devel openssl-devel pam-devel perl-IPC-Cmd

安装openSSL 3.x 版本

配置阶段

wget https://www.openssl.org/source/openssl-3.3.0.tar.gz
tar -zxvf openssl-3.3.0.tar.gz

不指定 prefix 时,OpenSSL 会安装在以下默认路径 /usr/local

  • 二进制文件:/usr/local/bin
  • 库文件:/usr/local/lib
  • 头文件:/usr/local/include/openssl
  • 配置文件:/usr/local/ssl
cd openssl-3.3.0 && ./config --prefix=/usr/local/openssl_3.3

配置完成

安装阶段

make -j 2 

-j 2 表示同时两个线程执行

make install -j 2

配置阶段

备份旧版本的openssl

cp -rf /usr/bin/openssl /usr/bin/openssl.bak
rm -rf /usr/bin/openssl

创建新的符号链接指向新版本(软连接)

ln -s /usr/local/openssl_3.3/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl_3.3/include/openssl /usr/include/openssl

ssh-keygen需要依赖openssl的libcrypto (报错情况:openssl: error while loading shared libraries: libssl.so.3: cannot open shared object file: No such)

ln -snf /usr/local/openssl_3.3/lib64/libssl.so.3 /usr/lib/libssl.so.3
ln -snf /usr/local/openssl_3.3/lib64/libcrypto.so.3 /usr/lib/libcrypto.so.3

更新动态链接库路径

echo "/usr/local/openssl_3.3/lib/" >> /etc/ld.so.conf
ldconfig

更改环境变量

echo 'export PATH=/usr/local/openssl_3.3/bin:$PATH' >> /etc/profile
echo 'export LD_LIBRARY_PATH=/usr/local/openssl_3.3/lib64:$LD_LIBRARY_PATH' >> /etc/profile
source /etc/profile

验证阶段

openssl version

问题记录

编译./config报错

编译OpenSSL时报错,Can‘t locate IPC/Cmd.pm in @INC

yum -y install perl-IPC-Cmd

刷新动态库报错

执行命令ldconfig报错

解决方案

mv /usr/lib64/libLLVM-7.so /usr/lib64/libLLVM-7
ln -sf /usr/lib64/libLLVM-7.so /usr/lib64/libLLVM-7

Can’t locate Data/Dumper

在执行make报错,报错日志:

Can’t locate Data/Dumper.pm in @INC (@INC contains: Configurations . /opt/openssl-3.3.0/util/../Configurations /opt/openssl-3.3.0/util/perl /opt/openssl-3.3.0/Configurations /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 /opt/openssl-3.3.0/external/perl/Text-Template-1.56/lib /opt/openssl-3.3.0/util/../external/perl/Text-Template-1.56/lib) at exporters/cmake/OpenSSLConfig.cmake.in line 5. BEGIN failed–compilation aborted at exporters/cmake/OpenSSLConfig.cmake.in line 5. make: *** [exporters/OpenSSLConfig.cmake] Error 1 make: *** Waiting for unfinished jobs…. Can’t locate Data/Dumper.pm in @INC (@INC contains: Configurations . /opt/openssl-3.3.0/util/../Configurations /opt/openssl-3.3.0/util/perl /opt/openssl-3.3.0/Configurations /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 /opt/openssl-3.3.0/external/perl/Text-Template-1.56/lib /opt/openssl-3.3.0/util/../external/perl/Text-Template-1.56/lib) at exporters/cmake/OpenSSLConfig.cmake.in line 5. BEGIN failed–compilation aborted at exporters/cmake/OpenSSLConfig.cmake.in line 5. make: *** [OpenSSLConfig.cmake] Error 1

CentOS/RHEL

yum install perl-Data-Dumper

Ubuntu/Debian

sudo apt-get install libdata-dumper-perl

重新执行编译安装

cd /opt/openssl-3.3.0
./config
make
sudo make install