当前位置:   article > 正文

Linux Openssl升级(详)

openssl升级

环境:

系统版本:CentOS Linux release 7.4.1708(Core)

内核版本:3.10.0-514.el7.x86 64

Openssl 由1.0.2k-fips 升级到3.1.0-beta1

升级说明:

OpenSSL缓冲区溢出漏洞(CVE-2021-3711),OpenSSL <= 1.1.1k

OpenSSL缓冲区溢出漏洞(CVE-2021-3712),OpenSSL <= 1.1.1k或OpenSSL <= 1.0.2y

  1. Openssl源码地址

OPENSSL 源码包下载地址:https://ftp.openssl.org/source/

  1. 查看Openssl基本信息

版本 ssh -V 或openssl vervison

位置 whereis openssl

openssl vervison -a也可以看安装位置信息

  1. 部署准备

wget --no-check-certificate https://ftp.openssl.org/source/openssl-3.1.0-beta1.tar.gz //包下载

tar -zxvf openssl-3.1.0-beta1.tar.gz //解压ssl文件包

cd openssl-3.1.0-beta1

mv /usr/bin/openssl /usr/bin/openssl .bak

mv /usr/include/openssl /usr/include/openssl .bak //备份opensll文件

mkdir -p /usr/src/openssl //位置可以随意,创建目录 ,用于openssl安装路径

  1. 安装部署

./config --prefix=/usr/src/openssl --shared //进行源代码配置,生成了Makefile

可能出现报错,信息如下: 没有IPC/Cmd.pm

解决方法:

yum install perl-CPAN -y //注意CPAN为大写

perl -MCPAN -e shell

install IPC/Cmd.pm //输错了可以用Ctrl+Backspace删除

可能出现的问题1:perl -MCPAN -e shell 命令执行后报错,Can't call method "http" on unblessed reference at……可以通过cpan命令进入,如果输入还是有问题,退出来,再通过perl -MCPAN -e shell 进入。

可能出现的问题2:install IPC/Cmd.pm命令执行报错Catching error:“read timeout at……,可以退出后再执行一遍,在安装过程中一直卡在fetching with LWP的位置可以通过Ctrl+C取消提取,会自动进行安装。

装载完成后输入q退出来。

可能出现的问题3:

Failure! build file wasn't produced.

Please read INSTALL.md and associated NOTES-* files. You may also have to

look over your available compiler tool chain or change your configuration.

ERROR!

No C compiler found, please specify one with the environment variable CC,

解决方法:安装依赖包, yum install gcc gcc-++ glibc-devel glibc-headers -y

安装完成后再输入配置命令

make && make install //编译安装,执行make如果没有发生错误就执行make install

替换原openssl

ln -s /usr/src/openssl/bin/openssl /usr/bin/openssl //建立软连接

ln -s /usr/src/openssl/include/openssl /usr/include/openssl //建立软连接

扩展:

新建:ln [参数][源文件或目录][目标文件或目录]

删除:rm -rf [目标文件或目录]

检查软连接建立情况ls -al /usr/bin/openssl ,我们可以看到如下:

echo "/usr/src/openssl/lib" >> /etc/ld.so.conf //添加动态链接库

ldconfig //刷新库

ldconfig是一个动态链接库管理命令,命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为 /etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表。ldconfig通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这个命令。

检查版本信息。

可能出现显示错误1,没有libssl.so.3不能被打开共享库,找不到该库,动态链接库没有连接成功,可以手动刷

定位libssl.so.3与libcrypto.so.3文件位置,替换库

ln -s /usr/src/openssl/lib64/libssl.so.3 /usr/lib64/libssl.so.3

ln -s /usr/src/openssl/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3

检查连接库

ldd /usr/src/openssl/bin/openssl

刷新库,查看库版本信息

总结:

OpenSSL升级主要关注安装部署的位置./config --prefix=/usr/src/openssl,基于此位置建立软连接。每次调整动态库后要输入ldconfig刷新库,每更新一次动态库,都会在ld.so.conf中生成相关信息,可以通过编辑/etc/ld.so.conf来调整库,保留匹配库。

参考材料:

https://blog.csdn.net/m0_50932526/article/details/128224055

https://www.jianshu.com/p/4e9edc2c678b

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/199987
推荐阅读
相关标签
  

闽ICP备14008679号