我一直在运行安装了 Ubuntu 18 的生产服务器。最近,我发现我的 Web 应用程序在客户位置安装的某些防火墙上不被允许。
我发现我的服务器正在通过TLSv1.0, TLSv1.1, TLSv1.2
协议进行通信,我假设防火墙设置仅允许通过协议与服务器进行通信TLSv1.3
。
由于 Ubuntu 18 附带OpenSSL version 1.1.0
,为了获得服务器支持,TLS v1.3
我必须将 OpenSSL 升级到version 1.1.1
最新版本。
由于这是正在运行的生产服务器nginx
,因此我不想直接在服务器上尝试任何事情。
root@energy-prod:~# nginx -v
nginx version: nginx/1.14.0 (Ubuntu)
在不干扰服务器的任何其他设置的情况下将 OpenSSL 升级到 v1.1.1 的最佳方法是什么?
答案1
笔记:截至 2019 年 8 月,openSSL 1.1.1 应该可以通过 18.04 的常规软件包升级/安装进行安装。或者,您可以直接从下载 .deb 软件包这里。
根据OpenSSL 网站:
最新稳定版本是 1.1.1 系列。这也是我们的长期支持 (LTS) 版本,支持至 2023 年 9 月 11 日。
由于这不在当前的 Ubuntu 存储库中,您需要手动下载、编译和安装最新的 OpenSSL 版本。
以下是需要遵循的说明:
- 打开终端(Ctrl++ Alt)t。
- 获取压缩包:
wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
- 使用以下方法解压
tar -zxf openssl-1.1.1g.tar.gz && cd openssl-1.1.1g
- 发出命令
./config
。 - 发出命令
make
(您可能需要sudo apt install make gcc
在成功运行此命令之前运行)。 - 运行
make test
以检查可能的错误。 - 备份当前 openssl 二进制文件:
sudo mv /usr/bin/openssl ~/tmp
- 发出命令
sudo make install
。 - 从新安装的二进制文件创建到默认位置的符号链接:
sudo ln -s /usr/local/bin/openssl /usr/bin/openssl
- 运行命令
sudo ldconfig
来更新符号链接并重建库缓存。
假设执行步骤 4 到 10 没有出现任何错误,您应该已经成功安装了新版本的 OpenSSL。
再次从终端发出命令:
openssl version
您的输出应如下所示:
OpenSSL 1.1.1g 21 Apr 2020