环境:
系统版本: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
Openssl源码地址
OPENSSL 源码包下载地址:https://ftp.openssl.org/source/
查看Openssl基本信息
版本 ssh -V 或openssl vervison
位置 whereis openssl
openssl vervison -a也可以看安装位置信息
部署准备
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安装路径
安装部署
./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.toymoban.com/news/detail-614576.html
https://www.jianshu.com/p/4e9edc2c678b文章来源地址https://www.toymoban.com/news/detail-614576.html
到了这里,关于Linux Openssl升级(详)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!