如何在Ubuntu中将OpenSSL从1.0.2g升级到1.1.0g并让python识别新的OpenSSL

use*_*654 1 ssl openssl pyopenssl tls1.2 ubuntu-16.04

我有Ubuntu 16.04。它有OpenSSL 1.0.2g。我需要使用OpenSSL 1.1.0g。请注意,OpenSSL 1.1.0g已安装在另一台计算机上Ubuntu 18。但是我需要在其中运行python程序,Ubuntu 16.04但需要特定的OpenSSL 1.1.0g。我做了:

sudo apt-get upgrade
sudo apt-get update
Run Code Online (Sandbox Code Playgroud)

但是OpenSSL在我的Ubuntu机器上没有更新。我该如何更新?

我使用Python socket, ssl模块,以使端口443威尔蟒蛇TLS连接会自动识别OpenSSL 1.1.0g,如果我更新了老OpenSSL 1.0.2gOpenSSL 1.1.0g

升级的原因OpenSSL是我需要运行python程序ssl socket,但我需要使用该程序OpenSSL 1.1.0g

当我尝试:

sudo apt-get install openssl
Run Code Online (Sandbox Code Playgroud)

并通过以下方式检查OpenSSL版本:openssl version -a 我得到了旧版本OpenSSL 1.0.2g

请问如何OpenSSL 1.1.0g在我的Ubuntu 14.06机器上获得新版本?

eds*_*res 7

为什么仅通过更新就无法在Ubuntu 16.04上运行OpenSSL 1.1.0g:

Ubuntu 18拥有的OpenSSL 1.1.0g是因为其存储库中可用的版本。有时,它在存储库系统上具有一个以上版本的软件包。但是,似乎Ubuntu 16.04根本没有您需要的版本。这就是为什么您不是这样,并且仅通过更新OpenSSL 1.1.0g就无法继续工作的原因Ubuntu 16.04。存储库中可用的版本不同

以及操作方法:

你要么需要手动安装或找到一个库Ubuntu 16.04,使OpenSSL 1.1.0g系统上可用。我不确定是否有可用的存储库,因此,如果要手动安装它,请执行以下操作:

wget https://www.openssl.org/source/old/1.1.0/openssl-1.1.0g.tar.gz
tar xzvf openssl-1.1.0g.tar.gz
cd openssl-1.1.0g
./config
make
sudo make install

openssl version -a
Run Code Online (Sandbox Code Playgroud)

这就对了!

警告。:默认情况下,通过安装系统中不可用的OpenSSL新版本,您引入了与系统维护提供的更新不兼容的版本。您需要自己照顾它。也许,根据您的情况,值得使用而Ubuntu 18默认情况下具有所需的OpenSSL版本。这是最简单,最安全的方法。

希望一切顺利。祝好运!

  • 谢谢埃德森。顺便说一句,在完成 make/install 后,如果您看到这个,就像我在 Ubuntu 16.04.6 x86_64 上所做的那样,```$ openssl version -a openssl: error whileLoading共享库: libssl.so.1.1: 无法打开共享对象文件:没有这样的文件或目录``然后使用 ldconfig 或只需键入此行:``export LD_LIBRARY_PATH=/usr/local/lib/` (5认同)