如何安装 OpenSSL 1.1.1 和 libSSL 包?

Kar*_*ogi 13 openssl 18.04

我想使用 OpenSSL1.1.1 版本进行代码开发。目前我正在 Ubuntu 18.04 机器上使用 Openssl 1.1.0g。

如果我使用命令下载包sudo apt install libssl-dev,那么我会得到 OpenSSL 1.1.0g 版本,

如果我使用命令下载包sudo apt install libssl1.0-dev,那么我会得到 OpenSSL 1.0.2n 版本,

如何下载 OpenSSL 1.1.0 和 libssl 包?

注意:我不想单独下载 OpenSSL 包并在外部构建它。我应该使用 Ubuntu 包下载。

Mar*_*ogi 16

事实上,你的问题是重复的,同样的问题已经出现在Upgrade openssl 1.1.0 to 1.1.1 in Ubuntu 18.04 中

正如@Kevin Bowen 已经回答的那样,openssl 1.1.1 不在当前的 Ubuntu 存储库中,您需要手动下载、编译和安装最新的 OpenSSL 版本。

我在本comments节开头也提出了同样的建议。我最喜欢的总是安装在 中/opt,所以我也建议在comments部分安装。

如果你不想做,那么你将永远被困住!

什么是 OpenSSL?

OpenSSL 是一个命令行加密工具包,它实现了安全套接字层 (SSL v2/v3) 和传输层安全 (TLS v1) 网络协议以及它们所需的相关加密标准。

大多数使用TLS / SSL协议的网络通信应用程序和工具可能都安装了一些 OpenSSL 工具。如果您要使用依赖于最新版本的 OpenSSL 的应用程序和软件包,您可能需要在 Ubuntu 系统上手动安装它。

OpenSSL 依赖于作为 OpenSSL 项目一部分的两个重要库:

  • libssl为 SSLv3 和 TLS 提供客户端和服务器端实现。
  • libcrypto提供 SSL/TLS 所需的通用加密和 X.509 支持,但在逻辑上不是它的一部分

Ubuntu 附带的默认 OpenSSL 工具包不是最新的。要获得最新版本,您必须自己下载并安装.

openssl 1.1.1b在 Ubuntu 18.04 上安装最新版本的指南。

第 1 步:下载 openssl 1.1.1b

从 Ubuntu 源包下载最新的 openssl 1.1.1b 版本...。

OpenSSL 加密和 SSL/TLS 工具包

在此处输入图片说明 Figure-1: Download openssl 1.1.1b

您还可以通过运行以下命令轻松安装 openssl 1.1.1b 包...

wget https://www.openssl.org/source/openssl-1.1.1b.tar.gz

第 2 步:从 tar.gb 包安装 Openssl

现在创建/opt/openssl目录:

$ sudo mkdir /opt/openssl 在此处输入图片说明 Figure-2: Create folder for openssl under /opt directory.

现在您已经为您的系统下载了正确的存档包到~/Downloads文件夹中,运行以下命令来安装Openssl.

$ sudo tar xfvz ~/Downloads/openssl-1.1.1b.tar.gz --directory /opt/openssl
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明 Figure-3: Extraction into /opt/openssl is complete.

$ perl --version 在此处输入图片说明 Figure-4: Perl version.

LD_LIBRARY_PATH使用以下值导出环境变量:

$ export LD_LIBRARY_PATH=/opt/openssl/lib
Run Code Online (Sandbox Code Playgroud)

LD_LIBRARY_PATH通过此命令验证是否设置了正确的值:

$ echo $LD_LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明 Figure-5: Value of environment variable LD_LIBRARY_PATH is /opt/openssl/lib.

发出config命令:

 $ cd /opt/openssl/openssl-1.1.1b
 $ sudo ./config --prefix=/opt/openssl --openssldir=/opt/openssl/ssl
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明 Figure-6: config command

接下来,发出make命令:

$ sudo make

发出make test命令以检查可能的错误:

$ sudo make test

在此处输入图片说明 Figure-7: Bingo! All tests successful.

发出make install命令:

$ sudo make install

openssl二进制文件位于何处?

发出以下命令:

$ sudo updatedb                              # rebuild library cache
$ locate openssl | grep /opt/openssl/bin
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明 Figure-8: Locate openssl binary.

该目录/usr/bin还有openssl二进制文件,它是早期版本。这个unwanted openssl二进制文件的存在/usr/bin/openssl会给我们带来麻烦,所以我们必须检查一下!

发出以下命令以处理/usr/bin/openssl二进制文件:

$ cd /usr/bin
$ ls -l openssl
$ sudo mv openssl openssl.old       # rename earlier version openssl to openssl.old
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明 Figure-9: Rename earlier version of openssl binary to openssl.old.

第三步:设置PATH环境变量

Openssl需要设置PATH环境变量,如下图所示。

openssl.sh/etc/profile.d/目录下创建一个名为的文件。

$ sudo touch /etc/profile.d/openssl.sh
$ sudo vi /etc/profile.d/openssl.sh
Run Code Online (Sandbox Code Playgroud)

添加以下内容:

#!/bin/sh
export PATH=/opt/openssl/bin:${PATH}
export LD_LIBRARY_PATH=/opt/openssl/lib:${LD_LIBRARY_PATH}
Run Code Online (Sandbox Code Playgroud)

保存并关闭文件。使用以下命令使其可执行。

$ sudo chmod +x /etc/profile.d/openssl.sh
Run Code Online (Sandbox Code Playgroud)

然后,通过运行以下命令永久设置环境变量:

 $ source /etc/profile.d/openssl.sh
Run Code Online (Sandbox Code Playgroud)

注销或重新启动系统。

现在,检查PATH环境变量:

$ echo $PATH

在此处输入图片说明 Figure-10: PATH envirnement variable having /opt/openssl/bin directory

$ which openssl 在此处输入图片说明 Figure-11: The binary 'openssl' is under '/opt/openssl/bin' directory

现在,检查openssl versionusing 命令:

$ openssl version

在此处输入图片说明 Figure-12: openssl latest version

现在,使用命令行工具检查 openssl 版本:

$ openssl

在此处输入图片说明 Figure-13: Check version through 'openssl' command line.

如果LD_LIBRARY_PATH没有正确设置会发生什么?

$ openssl

在此处输入图片说明 Figure-14: Error thrown by 'openssl' command line when 'LD_LIBRARY_PATH' is not properly set.

正如所描述的Step-3,您必须设置LD_LIBRARY_PATH为正确的值,即 /opt/openssl/lib

$ export LD_LIBRARY_PATH=/opt/openssl/lib:$LD_LIBRARY_PATH

概括:

此方法手动下载、解压缩、编译和安装最新的 OpenSSL 版本 1.1.1b。