如何在Linux上从Source安装最新的OpenSSL版本
OpenSSL是一个广泛使用的加密库,实现SSL和TLS协议以保护计算机网络上的通信。 OpenSSL被Apache Web服务器,PHP,Postfix等许多软件广泛使用。 OpenSSL为Chipers(AES,Blowfish,DES,IDEA等),加密散列函数(MD5,MD4,SHA-1,SHA-2等)和公钥加密(RSA,DSA,Diffie)等不同的加密算法提供支持。 - 赫曼密钥交换)。
在本教程中,我将逐步向您展示如何在Ubuntu 18.04和CentOS 7.5服务器上从源代码安装最新的稳定OpenSSL版本。
我们将要做什么?
- 安装依赖关系
- 下载OpenSSL源代码
- 安装OpenSSL
- 编译并安装OpenSSL
- 配置链接库
- 配置OpenSSL二进制文件
- 测试
第1步 - 安装依赖关系
为了从源代码手动编译OpenSSL,我们必须做的第一步是安装一些软件包依赖项,包括Ubuntu上的'build-essential'软件包或者CentOS上的'Development Tools'软件包。
在Ubuntu 18.04上
使用下面的apt命令更新Ubuntu存储库并安装软件包编译的软件包依赖关系。
sudo apt update
sudo apt install build-essential checkinstall zlib1g-dev -y
在CentOS 7.5上
使用yum命令安装'开发工具'和一些软件包库。
yum group install 'Development Tools'
yum install perl-core zlib-devel -y
安装完成后,请转至下一步。
第2步 - 下载OpenSSL
在本教程中,我们将安装OpenSSL的最新稳定版本 - OpenSSL 1.0.2o。 您可以从OpenSSL站点下载源代码。
转到'/ usr / local / src'目录并使用wget下载OpenSSL源代码。
cd /usr/local/src/
wget https://www.openssl.org/source/openssl-1.0.2o.tar.gz
现在提取openssl.tar.gz文件,并转到'openssl'目录。
tar -xf openssl-1.0.2o.tar.gz
cd openssl-1.0.2o
OpenSSL源代码已经下载。
第3步 - 安装OpenSSL
在将自定义OpenSSL版本安装到系统之前,让我们使用以下命令检查安装的版本。
openssl version -a
以下是我在Ubuntu 18.04上的结果。
这是在CentOS 7.5上。
我们将用最新的稳定版本1.0.2o替换'1.1.0g'版本。
我们将把新的OpenSSL版本安装到特定的目录'/ usr / local / ssl',然后启用OpenSSL的链接库,并为OpenSSL配置新的二进制PATH。
- 安装和编译OpenSSL
转到openssl下载的目录'/ usr / local / src / openssl'。
cd /usr/local/src/openssl-1.0.2o
使用下面的命令配置和编译OpenSSL。
./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib
make
make test
等待OpenSSL编译过程。
注意:
- --prefix和--openssldir =设置OpenSSL的输出路径。
- shared = force来创建一个共享库。
- zlib =使用zlib库启用压缩。
编译过程完成后,使用下面的命令安装OpenSSL。
make install
OpenSSL安装在'/ usr / local / ssl'目录中。
- 配置链接库
接下来,我们将配置OpenSSL的共享库。 新的OpenSSL二进制文件将从'/ usr / local / ssl / lib'目录加载库文件。
转到'/etc/ld.so.conf.d'目录并创建新的配置文件'openssl-1.0.2o.conf'。
cd /etc/ld.so.conf.d/
vim openssl-1.0.2o.conf
粘贴openssl库路径目录。
/usr/local/ssl/lib
保存并退出。
现在使用下面的命令重新加载动态链接。
sudo ldconfig -v
你会看到'/ usr / local / ssl / lib'目录下的OpenSSL库已经被加载。
Ubuntu 18.04。
CentOS 7.5。
- 配置OpenSSL二进制文件
我们将用新版本'/ usr / local / ssl / bin / openssl'替换默认的openssl二进制文件'/ usr / bin / openssl或/ bin / openssl'。
在Ubuntu 18.04上
备份二进制文件。
mv /usr/bin/c_rehash /usr/bin/c_rehash.BEKUP
mv /usr/bin/openssl /usr/bin/openssl.BEKUP
使用vim编辑'/ etc / environment'文件。
vim /etc/environment
现在添加新的OpenSSL二进制目录如下
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/ssl/bin"
保存并退出。
重新加载环境文件并测试新的更新二进制PATH。
source /etc/environment
echo $PATH
现在再次检查OpenSSL二进制文件。
which openssl
你会得到如下结果。
Ubuntu的二进制路径openssl已更新。
在CentOS 7.5上
备份centos OpenSSL二进制文件。
mv /bin/openssl /bin/openssl.BEKUP
为OpenSSL创建新的环境文件。
vim /etc/profile.d/openssl.sh
粘贴下面的配置。
#Set OPENSSL_PATH OPENSSL_PATH="/usr/local/ssl/bin" export OPENSSL_PATH PATH=$PATH:$OPENSSL_PATH export PATH
保存并退出。
使openssl.sh文件成为可执行文件。
chmod +x /etc/profile.d/openssl.sh
加载OpenSSL环境并使用下面的命令检查PATH bin目录。
source /etc/profile.d/openssl.sh
echo $PATH
现在检查OpenSSL文件。
which openssl
你会得到如下结果。
CentOS的二进制路径openssl已更新。
第4步 - 测试
使用以下命令测试OpenSSL新版本。
openssl version -a
Ubuntu上的结果。
结果在CentOS上。
最新的最新稳定版本的OpenSSL已经从Linux Ubuntu 18.04和CentOS 7.5上的源码安装。