相关文章推荐
腹黑的水龙头  ·  【OpenMP】parallel ...·  1 年前    · 
紧张的火龙果  ·  Perform grouped joins ...·  1 年前    · 
神勇威武的红豆  ·  如何在 java ...·  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/openssl

    shared 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
        陶老师学习笔记
            AIGC爱好者,DBA,DevOps
          
    粉丝