概述

在linux中,报自编译python3 SSLError(“Can’t connect to HTTPS URL because the SSL module is not available”),则需要linux中OpenSSL的版本

检查系统中的 OpenSSL 版本:

首先,确定当前系统中安装的 OpenSSL 版本。可以通过以下命令来查看:

1
openssl version

如果输出的版本低于 1.1.1,那么你需要更新 OpenSSL 到 1.1.1 或更新的版本。

卸载旧版本:

如果系统中已经安装了旧版本的 OpenSSL,可以先卸载它:

1
sudo yum remove openssl

或者如果是 Ubuntu/Debian 系统:

1
sudo apt-get remove openssl

手动安装新版本的 OpenSSL:

访问 OpenSSL 的官方网站或者从安全可靠的镜像站点下载最新版本的 OpenSSL 源代码。例如,你可以下载 OpenSSL 1.1.1 系列的稳定版本。

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

解压缩和编译 OpenSSL:

1
tar -zxvf openssl-1.1.1.tar.gz

运行以下命令配置和编译 OpenSSL:

1
2
3
4
cd openssl-1.1.1
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib
make
sudo make install

这将安装 OpenSSL 到 /usr/local/openssl 目录下。

配置动态链接库:

为了让系统识别新安装的 OpenSSL,需要更新动态链接库的配置。执行以下命令:

1
sudo vim /etc/ld.so.conf.d/openssl-1.1.1.conf

在编辑器中添加以下内容:

1
/usr/local/openssl/lib

保存并退出编辑器。然后运行以下命令更新动态链接库缓存:

1
sudo ldconfig

验证新版本的 OpenSSL:

确认安装完成后,使用以下命令验证新安装的 OpenSSL 版本:

1
/usr/local/openssl/bin/openssl version

应该输出类似于 OpenSSL 1.1.1 的信息。

重新编译 Python:

返回到之前下载 Python 源代码的目录,重新运行 configure 脚本,并编译安装 Python:

1
2
3
./configure --with-openssl=/usr/local/openssl --prefix=<python安装的路径>
make
sudo make install

验证 Python 中的 SSL 模块

1
2
import ssl
print(ssl.OPENSSL_VERSION)