介绍
虽然CentOS7镜像中会带有OpenSSL的RPM包,但我们经常会遇到各种各样的原因(如升级补丁、高版本才支持某些功能等),需要将现有的OpenSSL替换成一个高版本。在升级到高版本的过程中,又可能受限于操作系统的版本较低,导致无法通过RPM包进行安装。因此,在此篇文章中记录以tar包编译方式进行安装的步骤,供有需要的人参考。
环境说明:
- 操作系统:CentOS 7.9
- openssl:3.0.2
步骤
1、检查服务器是否已安装openssl
首先我们检查一下服务器是否已经安装过openssl,如果已经安装过低版本,就先将其卸载掉。注意,不卸载也没关系,只是最后需要手动配置软链接到/usr/bin目录下。
[root@localhost src]# rpm -qa | grep openssl
从截图中看到是已经安装过openssl的1.0.2k版本的,我们需要将其卸载掉。
2、卸载openssl
对于RPM包安装方式,我们直接使用YUM或RPM命令卸载即可。
[root@localhost src]# yum remove openssl
3、下载OpenSSL包
卸载掉低版本的openssl后,我们前往官网下载高版本的OpenSSL包,官网地址为:https://www.openssl.org/source/ 。浏览器打开后,选择从github上下载包即可。
打开github后,根据自己需要选择对应的版本,我这里选择的是openssl-3.0.2的tar包。
下载后,将其上传至CentOS服务器中即可。当然,如果你的服务器能够访问外网,也可以复制下载链接直接在CentOS中使用wget命令下载。
4、解压tar包并进入到解压目录中
在将tar包上传到服务器后,我们将其解压。解压的目录需要根据自己服务器的实际磁盘空间去选择解压的目录,我这里只是演示就无所谓了。
[root@localhost src]# tar xvf openssl-openssl-3.0.2.tar.gz
解压后,进入到解压的文件夹中。
[root@localhost src]# cd openssl-openssl-3.0.2
5、配置
进入到目录后,我们编译源码包。
[root@localhost openssl-openssl-3.0.2]# ./config --prefix==/usr/local
参数说明:
- –prefix== 指定安装的位置
6、安装
在编译完成后,我们执行安装命令,将编译好的文件安装到指定的目录中。
[root@localhost openssl-openssl-3.0.2]# make install
7、配置动态链接库
安装完成后,我们需要配置动态链接库。配置动态链接库的时候,正确的做法是在/etc/ld.so.conf目录下新增openssl的配置文件,而不是在/etc/ld.so.conf文件下新增一条。当然,你在/etc/ld.so.conf文件下新增一条也能使用,但是不太规范。例如,我这里直接就将/usr/local/lib64目录放在新建的openssl3.0.2.conf配置文件中。
[root@localhost openssl-openssl-3.0.2]# echo "/usr/local/lib64/" > /etc/ld.so.conf.d/openssl3.0.2.conf
在配置好动态链接库后,此时还不能使用openssl,因为动态链接库还没有生成缓存文件,CentOS 7还不知道我们的动态链接库。我们接下来需要执行ldconfig命令,命令执行后它会去搜索/lib和lib64以及/etc/ld.so.conf文件内列出的目录,然后去找可以共享的动态链接库文件(例如lib.so文件),找到后使用动态链接库文件创建出ld.so文件和缓存文件。
缓存文件是一个已排好序的动态链接库名称的列表,它是二进制的,默认是在/etc/ld.so.cache。
[root@localhost openssl-openssl-3.0.2]# ldconfig -v
8、查看OpenSSL的版本
上述全部做完后,我们就可以查看openssl的版本了。
[root@localhost openssl-openssl-3.0.2]# openssl version
看到上述截图,就说明openssl已经安装完毕了。
错误
1、配置时报错Can’t locate IPC/Cmd.pm
此报错是因为缺少IPC/Cmd.pm模块导致的,遇到此问题后,我们先使用YUM命令安装perl-CPAN依赖。
[root@localhost openssl-openssl-3.0.2]# yum install perl-CPAN
安装成功后,需要进入到CPAN窗口中,安装这个IPC/Cmd.pm模块。
注意,第一次进入需要配置一些参数,例如将模块安装在哪里。默认情况下会将所有文件(诸如模块,源文件等)放在执行该命令的用户目录下的.cpan文件中。如果不想存储在用户目录下,则将第一次交互的值设置为no(不按默认配置),再回车,然后指定存储目录,指定完后一直回车即可。如下图所示:
[root@localhost openssl-openssl-3.0.2]# perl -MCPAN -e shell
配置好后,安装IPC/Cmd.pm模块。
cpan[2]> install IPC/Cmd.pm
安装完成后,重新config即可。
评论区