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 wgethttps://www.openssl.org/source/openssl-1.1.1g.tar.gz
这儿我们运用的是最新版别,也能够挑选其他版别。
-
解压源代码包。
tar -zxvf latest.tar.gz tarzxvf openssl-1.1.1g.tar.gz cdopenssl-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