我想使用 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 版本...。
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)
接下来,发出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。
| 归档时间: |
|
| 查看次数: |
92572 次 |
| 最近记录: |