linux杂谈之openssl升级

场景引入1:yum安装nginx时,发现openssl依赖包错误,提示openssl要求版本为1.0.2以上 ,但当前版本为1.0.0

场景引入2:centos7 下升级openssl并安装python3

场景引入3:漏洞扫描,有漏洞,需要进行升级

编译python3时需要带上'编译ssl 模块参数'

已知:'Python3.7'使用的openssl为'1.0.2'版本或'1.1'以上的版本

可能存在的问题: 安装了Python3.7之后,遇到的一个很麻烦的坑就是与'系统自带的ssl版本不兼容'
'Centso7.7'完全满足

明确:为什么要升openssl的版本?是安全漏洞还是其它原因?

目前使用的'TLS协议'有三个版本,即TLS '1.0、1.1和1.2'

一   安装

说明:最小化安装

(1)安装依赖

yum install perl perl-devel gcc gcc++ -y

'非必须'

yum install zlib zlib-devel bzip2-devel openssl-devel ncurses-devel libuuid-devel sqlite-devel readline-devel tcl-devel tk-devel lzma gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel 

(2)查看版本

[root@shell ~]# openssl version -a
OpenSSL '1.0.2k-fips'  26 Jan 2017

linux杂谈之openssl升级_第1张图片

(3)下载最新版本

wget  https://www.openssl.org/source/openssl-1.1.1g.tar.gz

github下载任意版本

git clone https://github.com/openssl/openssl.git

linux杂谈之openssl升级_第2张图片

(4)解压缩、编译操作

tar zxf openssl-1.1.1g.tar.gz

cd openssl-1.1.1g

'安装'  --> openssl -->'/usr/local/bin'  lib --> '/usr/local/lib64/{libssl.so.1.1,libcrypto.so.1.1}'

./config  

'编译  --> 安装'  --> '多核 --> make -j num'

make && make install

linux杂谈之openssl升级_第3张图片

(5)替换旧版本

'保留旧的,便于回退'

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

'软链接'

ln -sf /usr/local/bin/openssl /usr/bin/openssl
报错的原因 --> '动态链接库,没有加载'

'其它方式' --> '推荐'

ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64

ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64

 

目的:对系统做最小的改动,同时满足需求

二   推荐脚本 

'下载'

wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz

'解压并编译安装'

tar -zxvf openssl-1.1.1g.tar.gz
cd openssl-1.1.1g

'#如果此步骤报错,需要安装perl以及gcc包' --> 注意: '这种方式openssl二进制位置和对应的lib包'
./config --prefix=/usr/local/openssl   
'推荐' --> '全部文件在一个位置' --> '好删除'
make && make install

'保存-->软链接'
mv /usr/bin/openssl /usr/bin/openssl.bak
ln -sf /usr/local/openssl/bin/openssl  /usr/bin/openssl

echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
ldconfig  -v                    '设置生效' --> '加载动态链接库'

include

你可能感兴趣的:(shell编程)