Ubuntu 18.04 默认自带的 OpenSSL 版本是 1.1.0g,在不少安全或兼容性场景下,这个版本已经显得有些力不从心。如果你正好需要将 OpenSSL 升级到更新的版本,具体该如何操作?下面直接进入正题,带来完整的 Ubuntu 18.04 升级 OpenSSL 教程。
提前准备好远程备选通道
升级过程涉及系统关键库的替换,万一 SSH 断开导致远程连不上,那可就麻烦了。所以第一步,建议先安装 telnet 作为备用通道,避免升级过程中因远程连接中断而束手无策。
# apt update # apt install openbsd-inetd telnetd

安装完成后,验证一下 telnet 服务是否已在监听:
# netstat -a|grep telnet


搭建编译环境
接下来的操作需要从源码编译 OpenSSL,所以编译工具链和相关依赖库一个都不能少。先安装 make 工具:
# apt install make # apt install make-guile

接着安装 zlib 压缩库:
# apt install zlib*

gcc 编译器也是编译过程中必需的:
# apt install gcc

下载新版 OpenSSL 并备份旧文件
先新建一个目录用于存放源码包,然后将下载好的 openssl-1.1.1t.tar.gz 上传到该目录(也可以直接用 wget 拉取)。

升级前一定要记得将原来的 openssl 可执行文件做个备份:
# mv /usr/bin/openssl /usr/bin/openssl.bak

解压、配置、编译与安装
解压下载好的源码包:
# tar -zxvf openssl-1.1.1t.tar.gz

进入解压后的目录,执行配置脚本。这里指定安装路径为 /usr/local/openssl,同时开启共享库并启用 zlib 支持:
# cd openssl-1.1.1t # ./config --prefix=/usr/local/openssl --shared zlib

配置无误后,一气呵成地完成编译和安装:
# make && make install


配置动态链接库并建立软链接
为了让系统能够找到新安装的 OpenSSL 库,需要新增一个配置文件:
# vi /etc/ld.so.conf.d/ssl.conf
在文件中添加以下内容:
/usr/local/openssl/lib


接着更新动态链接库缓存,并将新版本的 openssl 软链接到 /usr/bin 下:
# ldconfig -v # ln /usr/local/openssl/bin/openssl /usr/bin/openssl


验证升级结果
最后使用 openssl version 命令查看版本号,如果显示 OpenSSL 1.1.1t,说明升级已顺利完成。
# openssl version

至此,Ubuntu 18.04 下的 OpenSSL 升级工作已全部完成。整个过程并不复杂,关键在于每一步的依赖安装和路径配置都要准确无误。
