Centos7编译/安装最新版openssl(耗时) 作者: 毕世平 时间: 2020-10-14 分类: 默认分类 前言:`openssl 1.0.2`前段时间貌似被发现存在漏洞,然而目前`yum info openssl`里可以看到centos7仓库里提供的还是此版本,所以呢,还在用centos7的要么直接升级Centos8(自带新版本openssl),要么自行编译安装此openssl吧。 本文主要介绍在`Centos7`下编译安装最新版`openssl 1.1.1h`(截止到2020年10月14日),编译可能会比较耗时,还请耐心等待,参考了网上教程,略有整合。 ## 1.安装依赖 yum -y install make wget perl perl-devel perl-Test-Simple gcc gcc-c++ ## 2.下载openssl最新源码压缩包 openssl官方提供源码下载的页面:https://www.openssl.org/source/ ,一般你可以在此得到最新版源码的下载链接,目前openssl最新版本是`1.1.1h`: # 切换目录 cd /usr/local/src # 下载压缩包 wget https://www.openssl.org/source/openssl-1.1.1h.tar.gz # 解压 tar -zxf ./openssl-1.1.1h.tar.gz # 切换目录 cd openssl-1.1.1h ## 3.开始编译 # 此命令一般用于在同目录下生成Makefile文件,为下一步的编译做准备 ./config # 编译,从Makefile文件中读取指令,然后编译 make # 检查上面编译的结果是否有错,error为0即可 make test # 安装,也是从Makefile文件中读取指令,安装到指定位置,因为要向系统写入文件,所以一般要你有root权限,所以这一步前面常与sudo搭配,root用户执行时则不需要加sudo make install **说明**:关于对`make`的命令解释,参考了此文:https://www.cnblogs.com/zhouhbing/p/5078525.html ## 4.文件替换 如果你系统已经内置了低版本的openssl,那么需要将它替换掉,如果没有则为新安装。 # 对于之前有预置openssl的系统而言,需要执行此命令 mv /usr/bin/openssl /usr/bin/openssl.old # 从/usr/local/bin/目录下复制新编译好的openssl到/usr/bin/目录下 cp /usr/local/bin/openssl /usr/bin/ # 从/usr/local/lib64/目录下将新的libssl.so.1.1和libcrypto.so.1.1复制到/usr/lib64/目录下 cp /usr/local/lib64/libssl.so.1.1 /usr/lib64/ cp /usr/local/lib64/libcrypto.so.1.1 /usr/lib64 # 查看openssl版本号,输出Openssl 1.1.1h 22 Sep 2020 即可 openssl version ![openssl升级.png](https://shiping.date/usr/uploads/2020/10/1680103656.png) 上面放出`openssl`升级到最新版结果图片。 ## 5.结语 本文参考了很多相关教程,记录下来方便使用。我在`vultr centos7`上面测试通过,欢迎测试,如有问题,欢迎留言指正。 ## 参考链接: - [CentOS如何升级openssl到最新版本](https://www.4spaces.org/how-to-upgrade-openssl-on-centos-7/ "CentOS如何升级openssl到最新版本") - [解决openssl make test错误:No plan found in TAP output](https://www.4spaces.org/openssl-make-test-error-no-plan-found-in-tap-output/ "解决openssl make test错误:No plan found in TAP output") - [Linux下 config/configure/Configure、make 、make test/make check、sudo make install 的作用](https://www.cnblogs.com/zhouhbing/p/5078525.html "Linux下 config/configure/Configure、make 、make test/make check、sudo make install 的作用") 标签: none