openssl升级(3.0)
环境:
OS:Centos 7
1.当前openssl版本
[root@host134 soft]# openssl version
OpenSSL 1.0.2k-fips 26 Jan 2017
2.安装基础依赖
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc
2.查看安装路径
[root@host134 soft]# whereis openssl
openssl: /usr/bin/openssl /usr/lib64/openssl /usr/include/openssl /usr/share/man/man1/openssl.1ssl.gz
3.下载指定版本的openssl
https://openssl-library.org/source/old/3.0/index.html
我这里下载的是3.0.14
wget https://github.com/openssl/openssl/releases/download/openssl-3.0.14/openssl-3.0.14.tar.gz
4.备份openssl文件
mv /usr/bin/openssl /usr/bin/openssl_old
mv /usr/include/openssl /usr/include/openssl_old
5.解压openssl
tar -zxvf openssl-3.0.14.tar.gz
6.切换到解压好的openssl目录
cd openssl-3.0.14/
7.配置openssl安装目录
./config --prefix=/usr/local/openssl
报错的处理:
[root@node1 openssl-3.0.14]# ./config --prefix=/usr/local/openssl
Can't locate IPC/Cmd.pm in @INC (@INC contains: /soft/openssl-3.0.14/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 . /soft/openssl-3.0.14/external/perl/Text-Template-1.56/lib) at /soft/openssl-3.0.14/util/perl/OpenSSL/config.pm line 19.
BEGIN failed--compilation aborted at /soft/openssl-3.0.14/util/perl/OpenSSL/config.pm line 19.
Compilation failed in require at /soft/openssl-3.0.14/Configure line 23.
BEGIN failed--compilation aborted at /soft/openssl-3.0.14/Configure line 23.
解决办法1:
yum install -y perl-CPAN
perl -MCPAN -e shell
进入后第一步选yes
第二步选manual
第三步选yes
cpan[1]> install IPC/Cmd.pm
解决办法2:
yum -y install perl-IPC-Cmd
yum -y install perl-I*
问题解决后重新编译
./config --prefix=/usr/local/openssl
8.编译&&安装
make
make install
9.创建软链接
说明:创建的软链接和之前没升级通过whereis openssl保持一致即可。
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
说明:在安装好openssl后,发现编译python还是提示不是最新的,需要做如下处理:
备份 mv /bin/openssl /bin/openssl.bak mv /usr/bin/openssl /usr/bin/openssl.bak mv /usr/include/openssl /usr/include/openssl.bak mv /usr/local/bin/openssl /usr/local/bin/openssl.bak --不存在 mv /usr/lib64/libssl.so.1.0.2k /usr/lib64/libssl.so.1.0.2k.bak --不操作 mv /usr/lib64/libcrypto.so.1.0.2k /usr/lib64/libcrypto.so.1.0.2k.bak --不操作 创建软连接(备注不存在的不需要操作) ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl --上面步骤已经操作,无须操作 ln -s /usr/local/openssl/include/openssl /usr/include/openssl --上面步骤已经操作,无须操作 ln -s /usr/local/openssl/bin/openssl /usr/local/bin/openssl --不存在 无须操作 ln -s /usr/local/openssl/lib64/libcrypto.so.3 /lib/libcrypto.so.3 --不存在 无须操作 ln -s /usr/local/openssl/lib64/libcrypto.so.3 /lib/libcrypto.so.6 --不存在 无须操作 ln -s /usr/local/openssl/lib64/libssl.so.3 /usr/lib64/libssl.so.3 --不存在 无须操作 ln -s /usr/local/openssl/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3 --不存在 无须操作 mv /usr/lib64/libssl.so /usr/lib64/bak_libssl.so ln -s /usr/local/openssl/lib64/libssl.so /usr/lib64/libssl.so mv /usr/lib64/libcrypto.so /usr/lib64/bak_libcrypto.so ln -s /usr/local/openssl/lib64/libcrypto.so /usr/lib64/libcrypto.so
红色标注为关键点,没有该步骤的话,python编译找不到新版本的openssl
10.添加动态链接库数据
echo "/usr/local/openssl/lib64/" >> /etc/ld.so.conf
11.更新动态链接库
ldconfig -v
12.验证openssl
查看openssl版本 openssl version -a 会显示全面详细信息.
[root@node1 openssl-3.0.14]# openssl version -a
OpenSSL 3.0.14 4 Jun 2024 (Library: OpenSSL 3.0.14 4 Jun 2024)
built on: Wed Nov 27 09:37:33 2024 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=0xdefa220b478bffff:0x842461