如何在Linux上从Source安装最新的OpenSSL版本

OpenSSL是一个广泛使用的加密库,实现SSL和TLS协议以保护计算机网络上的通信。在本教程中,我将...

如何在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版本。

我们将要做什么?

  1. 安装依赖关系
  2. 下载OpenSSL源代码
  3. 安装OpenSSL
    1. 编译并安装OpenSSL
    2. 配置链接库
    3. 配置OpenSSL二进制文件
  4. 测试

第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源码

OpenSSL源代码已经下载。

第3步 - 安装OpenSSL

在将自定义OpenSSL版本安装到系统之前,让我们使用以下命令检查安装的版本。

openssl version -a

以下是我在Ubuntu 18.04上的结果。

在Ubuntu 18.04上编译OpenSSL

这是在CentOS 7.5上。

在CentOS 7上编译OpenSSL

我们将用最新的稳定版本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的共享库。 新的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。

Ubuntu 18.04上的ldconfig

CentOS 7.5。

在CentOS 7上使用ldconfig

- 配置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 Binary

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 Binary

CentOS的二进制路径openssl已更新。

第4步 - 测试

使用以下命令测试OpenSSL新版本。

openssl version -a

Ubuntu上的结果。

结果在CentOS上。

最新的最新稳定版本的OpenSSL已经从Linux Ubuntu 18.04和CentOS 7.5上的源码安装。

参考

https://wiki.openssl.org/