環(huán)境:
系統(tǒng)版本:CentOS Linux release 7.4.1708(Core)
內(nèi)核版本:3.10.0-514.el7.x86 64
Openssl 由1.0.2k-fips 升級到3.1.0-beta1
升級說明:
OpenSSL緩沖區(qū)溢出漏洞(CVE-2021-3711),OpenSSL <= 1.1.1k
OpenSSL緩沖區(qū)溢出漏洞(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也可以看安裝位置信息
部署準(zhǔn)備
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 //位置可以隨意,創(chuàng)建目錄 ,用于openssl安裝路徑
安裝部署
./config --prefix=/usr/src/openssl --shared //進(jìn)行源代碼配置,生成了Makefile
可能出現(xiàn)報錯,信息如下: 沒有IPC/Cmd.pm

解決方法:
yum install perl-CPAN -y //注意CPAN為大寫

perl -MCPAN -e shell
install IPC/Cmd.pm //輸錯了可以用Ctrl+Backspace刪除

可能出現(xiàn)的問題1:perl -MCPAN -e shell 命令執(zhí)行后報錯,Can't call method "http" on unblessed reference at……可以通過cpan命令進(jìn)入,如果輸入還是有問題,退出來,再通過perl -MCPAN -e shell 進(jìn)入。


可能出現(xiàn)的問題2:install IPC/Cmd.pm命令執(zhí)行報錯Catching error:“read timeout at……,可以退出后再執(zhí)行一遍,在安裝過程中一直卡在fetching with LWP的位置可以通過Ctrl+C取消提取,會自動進(jìn)行安裝。

裝載完成后輸入q退出來。
可能出現(xiàn)的問題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 //編譯安裝,執(zhí)行make如果沒有發(fā)生錯誤就執(zhí)行make install

替換原openssl
ln -s /usr/src/openssl/bin/openssl /usr/bin/openssl //建立軟連接
ln -s /usr/src/openssl/include/openssl /usr/include/openssl //建立軟連接
擴(kuò)展:
新建:ln [參數(shù)][源文件或目錄][目標(biāo)文件或目錄]
刪除:rm -rf [目標(biāo)文件或目錄]
檢查軟連接建立情況ls -al /usr/bin/openssl ,我們可以看到如下:

echo "/usr/src/openssl/lib" >> /etc/ld.so.conf //添加動態(tài)鏈接庫
ldconfig //刷新庫
ldconfig是一個動態(tài)鏈接庫管理命令,命令的用途,主要是在默認(rèn)搜尋目錄(/lib和/usr/lib)以及動態(tài)庫配置文件/etc/ld.so.conf內(nèi)所列的目錄下,搜索出可共享的動態(tài)鏈接庫(格式如前介紹,lib*.so*),進(jìn)而創(chuàng)建出動態(tài)裝入程序(ld.so)所需的連接和緩存文件.緩存文件默認(rèn)為 /etc/ld.so.cache,此文件保存已排好序的動態(tài)鏈接庫名字列表。ldconfig通常在系統(tǒng)啟動時運(yùn)行,而當(dāng)用戶安裝了一個新的動態(tài)鏈接庫時,就需要手工運(yùn)行這個命令。

檢查版本信息。
可能出現(xiàn)顯示錯誤1,沒有l(wèi)ibssl.so.3不能被打開共享庫,找不到該庫,動態(tài)鏈接庫沒有連接成功,可以手動刷

定位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

刷新庫,查看庫版本信息

總結(jié):
OpenSSL升級主要關(guān)注安裝部署的位置./config --prefix=/usr/src/openssl,基于此位置建立軟連接。每次調(diào)整動態(tài)庫后要輸入ldconfig刷新庫,每更新一次動態(tài)庫,都會在ld.so.conf中生成相關(guān)信息,可以通過編輯/etc/ld.so.conf來調(diào)整庫,保留匹配庫。
參考材料:
https://blog.csdn.net/m0_50932526/article/details/128224055文章來源:http://www.zghlxwxcb.cn/news/detail-614576.html
https://www.jianshu.com/p/4e9edc2c678b文章來源地址http://www.zghlxwxcb.cn/news/detail-614576.html
到了這里,關(guān)于Linux Openssl升級(詳)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!