linux Centos升级openssl

1. 下载安装wget
yum -y install wget


2. 获取openssl源码包
wget https://www.openssl.org/source/openssl-1.1.1t.tar.gz
# 或前往官方下载后使用xftp传入服务器
# 官方链接:https://www.openssl.org/source/


3. 安装openssl 所需依赖
yum -y install gcc gcc-c++ openssl-devel libstdc++* libcap* wget pam-devel zlib-devel perl

4. 解压编译openssl
# 解压下载好的openssl源码包并进入其目录
tar -vxf openssl-1.1.1t.tar.gz

 

第一个方法

cd openssl-1.1.1t
# 配置
./config --prefix=/usr/local/openssl threads zlib shared enable-camellia

# --prefix : 指定安装目录
# threads/no-threads : 是否编译支持多线程的库。默认支持。
# zlib | zlib-dynamic | no-zlib : 使用静态的zlib压缩库 | 使用动态的zlib压缩库 | 不使用zlib压缩功能。
# shared | no-shared : 是否生成动态连接库。
# enable-camellia : 算法

# 编译安装
make && make install

5. 替换旧版openssl
# 备份旧版openssl
mv /usr/bin/openssl /usr/bin/openssl.bak-$(date +%m%d)

# 新版openssl软链接到旧openssl位置
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
# /etc/ld.so.conf 文件记录了编译时使用的动态链接库的路径,告诉链接器去哪个路径下寻找链接时需要用到的库,如果找不到,就会提示链接错误。
echo "/usr/local/openssl/lib">>/etc/ld.so.conf
# ldconfig 命令用于在默认搜寻目录 /lib 和 /usr/lib 以及动态库配置文件 /etc/ld.so.conf 内所列的目录下,搜索出可共享的动态链接库。
ldconfig

 

 


6. 查看openssl版本
openssl version

注:
安装完openssl后使用 ssh -V 查看依然是旧版openssl, 是因为openssh是rpm/yum安装的调用的openssl依旧是旧版,不影响使用。

如果看不顺眼可以编译升级新版openssh解决。

 

第二个方法
mv openssl-1.1.1t /usr/local/openssl
# 进入解压后的openssl文件夹

cd /usr/local/openssl
# 将openssl安装在/usr/local/openssl
./config threads zlib shared enable-camellia
# 编译安装
make && make install


查找一下libssl.so.1.1的位置,然后连接到/usr/lib64/libssl.so.1.1即可。如下我的位置是在/usr/local/lib64/libssl.so.1.1,连接到/usr/lib64/libssl.so.1.1就可以了。

[root@localhost ~]# find / -name libssl.so.1.1
/usr/local/lib64/libssl.so.1.1
[root@localhost ~]# ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1
[root@localhost ~]# ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
[root@localhost ~]# openssl version
OpenSSL 1.1.1t

 

 

 下面是详细版步骤

1. 查看Linux 系统版本
[root@bogon ~]# cat /etc/redhat-release

CentOS Linux release 7.3.1611 (Core)

 

 


图 1 查看Linux系统版本

2. 查看openssl版本
[root@bogon ~]# openssl version

OpenSSL 1.0.2k-fips 26 Jan 2017

 

 


图 2 查看openssl版本

3. 查看openssl路径
[root@bogon ~]# which openssl

/usr/bin/openssl

 

 


图 3 查看openssl路径

4. 下载Openssl
目前最新版本是1.1.1,可以通过修改版本号的方式下载最新版本,最新版本可以在这个网站下载:

[root@bogon ~]# wget http://www.openssl.org/source/openssl-1.1.1t.tar.gz

tar -zxvf openssl-1.1.1t.tar.gz

 

 


图 4 下载openssl-1.1.1t.tar.gz

5. 安装依赖
[root@bogon ~]# yum install -y zlib

[root@bogon ~]# yum install –y zlib-devel

[root@bogon ~]# yum install –y gcc

6. 安装Perl
6.1. 下载Perl
官方网站下载新版本的源码包:

wget https://www.cpan.org/src/5.0/perl-5.36.0.tar.gz

[root@bogon ~]# wget https://www.cpan.org/src/5.0/perl-5.37.9.tar.gz

 

 


图 5 下载perl-5.37.9.tar.gz

6.2. 解压Perl
[root@bogon ~]# tar -zxvf perl-5.37.9.tar.gz

6.3. 建立文件目录,以供安装时使用
[root@bogon ~]# mkdir /usr/local/perl

6.4. 配置Perl参数
进入perl-5.37.9.tar.gz的解压目录,执行:

[root@bogon ~]# cd perl-5.37.9

[root@bogon perl-5.37.9]# ./Configure -des -Dprefix=/usr/local/perl -Dusethreads –Uversiononly

6.5. 编译
[root@bogon perl-5.37.9]# make && make install

6.7. 查看版本
[root@bogon perl-5.37.9]# perl –v

 

 


图 6 查看perl版本

7. 安装Openssl
7.1. 解压Openssl
[root@bogon perl-5.28.2]# cd

[root@bogon ~]# tar -zxvf openssl-1.1.1t.tar.gz

7.2. 调用zlib共享库
[root@bogon ~]# cd openssl-1.1.1t

[root@bogon openssl-1.1.1t]# ./config --prefix=/usr/local/openssl shared zlib

 

 


图 7 配置openssl

7.3. 编译
[root@bogon openssl-1.1.1b]#make && make install

7.5. 备份当前Openssl

[root@bogon openssl-1.1.1b]# mv /usr/bin/openssl /usr/bin/openssl.bak-$(date +%m%d)

[root@bogon openssl-1.1.1b]# mv /usr/lib64/openssl /usr/lib64/openssl.bak-$(date +%m%d)

7.6. 使用新版Openssl

[root@bogon openssl-1.1.1b]# ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl

[root@bogon openssl-1.1.1b]# ln -s /usr/local/openssl/include/openssl/ /usr/include/openssl

8. 更新动态链接库数据
[root@bogon openssl-1.1.1b]# echo "/usr/local/openssl/lib/" >> /etc/ld.so.conf

9. 重新加载动态链接库
[root@bogon openssl-1.1.1b]# ldconfig -v

10. 查看安装后最新版本
[root@bogon openssl-1.1.1b]# openssl version

[root@bogon openssl-1.1.1b]# openssl version -a

 

 


图 8 openssl版本查看

11. 可能存在的异常
openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory

这是由于openssl库的位置不正确造成的。

解决方法:

在root用户下执行:

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

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

posted @ 2023-02-17 10:29  全琪俊  阅读(3822)  评论(0编辑  收藏  举报