CentOS7编译安装OpenSSL v1.1.1
CentOS7编译安装OpenSSL v1.1.1
1. 背景
使用pip安装urllib3一直报错: "ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with OpenSSL 1.0.2k-fips"。 决定进行OpenSSL版本升级到1.1.1+。
- CentOS 7默认仅支持OpenSSL 1.0.2版本,因此没办法原生支持很多新版本的特性,比如TLS 1.3等。事实上,OpenSSL已经官方淘汰了老版本的1.0.2支持。
- 很多内置的环境都依赖老版本的OpenSSL 1.0.2, 因此安装OpenSSL 1.1.1之后可能会导致系统里其他组件失效或损坏,建议备份好数据后谨慎操作。
2. 升级OpenSSL步骤
升级OpenSSL版本到1.1.1+需要编译安装,以下是具体步骤:
-
下载OpenSSL源代码。
wget https://www.openssl.org/source/latest.tar.gz wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
这里我们使用的是最新版本,也可以选择其他版本。
-
解压源代码包。
tar -zxvf latest.tar.gz tar zxvf openssl-1.1.1g.tar.gz cd openssl-1.1.1
-
编译安装OpenSSL。
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib make -j 8 make install
--prefix=/usr/local/openssl
,表示将OpenSSL安装在/usr/local/opensslshared zlib
,表示编译OpenSSL时启用动态链接库和zlib压缩库支持。 -
配置环境变量。
echo "export PATH=/usr/local/openssl/bin:$PATH" >> /etc/profile echo "export LD_LIBRARY_PATH=/usr/local/openssl/lib:\$LD_LIBRARY_PATH" >> /etc/profile source /etc/profile
-
验证OpenSSL版本号。
openssl version #如果成功安装,则会输出类似于以下的版本号: OpenSSL 1.1.1g 21 Apr 2020
升级OpenSSL版本可能会导致一些问题,建议在备份系统后进行操作,并在升级前仔细考虑是否必要升级。
5. python安装urllib3
wget 'https://www.python.org/ftp/python/3.8.16/Python-3.8.16.tar.xz' .
tar xvJf Python-3.8.16.tar.xz
cd Python-3.8
./configure --prefix=/usr/local/python-3.8 --with-ssl=/usr/local/openssl/lib
make -j 8
make install
#pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
#/usr/local/python/bin/pip3.8 install --upgrade pip
pip3.8 install urllib3
pip3.8 install openai
转载自:https://juejin.cn/post/7236357619982991415