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

 

 

 

posted @ 2024-08-08 14:59  slnngk  阅读(18)  评论(0编辑  收藏  举报