世界再美我始终如一 2025-04-28 06:30 采纳率: 97.8%
浏览 135
已采纳

urllib3 v2.0报错:仅支持OpenSSL 1.1.1+,当前SSL版本过低如何解决?

在使用urllib3 v2.0时,遇到报错提示“仅支持OpenSSL 1.1.1+,当前SSL版本过低”怎么办?此问题源于urllib3 v2.0要求最低OpenSSL版本为1.1.1,而系统中安装的OpenSSL版本较低。解决方法如下:首先,确认当前OpenSSL版本,运行`openssl version`命令检查。若版本低于1.1.1,需升级OpenSSL。在Linux上可通过包管理器(如`apt-get install openssl`或`yum update openssl`)升级;在Windows上需下载最新版OpenSSL并正确配置环境变量。其次,确保Python链接到正确的OpenSSL库。如果使用的是PyOpenSSL,需重新安装以适配新版本:`pip uninstall pyopenssl`后,再执行`pip install pyopenssl`。最后,验证问题是否解决,运行测试代码如`import urllib3; http = urllib3.PoolManager(); print(http.request('GET', 'https://httpbin.org/get'))`。若无报错,则说明升级成功。
  • 写回答

1条回答 默认 最新

  • 火星没有北极熊 2025-04-28 06:31
    关注

    1. 问题概述

    在使用 urllib3 v2.0 时,如果遇到报错提示“仅支持OpenSSL 1.1.1+,当前SSL版本过低”,这表明系统中安装的 OpenSSL 版本低于 urllib3 所要求的最低版本(1.1.1)。此问题可能出现在多种操作系统上,包括 Linux 和 Windows。

    为解决这一问题,需要逐步检查和升级系统中的 OpenSSL,并确保 Python 正确链接到新版本的 OpenSSL 库。以下是详细步骤:

    2. 检查当前 OpenSSL 版本

    首先,确认系统中安装的 OpenSSL 版本是否满足要求:

    • 在终端运行以下命令: openssl version
    • 如果返回的版本号低于 1.1.1,则需要升级 OpenSSL。
    
    $ openssl version
    OpenSSL 1.0.2k-fips  26 Jan 2017
    

    上述示例显示 OpenSSL 版本为 1.0.2,低于 1.1.1,因此需要升级。

    3. 升级 OpenSSL

    根据操作系统的不同,升级 OpenSSL 的方法也有所不同:

    1. Linux 系统
      • 对于基于 Debian 的系统(如 Ubuntu),可以运行:sudo apt-get update && sudo apt-get install openssl
      • 对于基于 Red Hat 的系统(如 CentOS),可以运行:sudo yum update openssl
    2. Windows 系统
      • 官方网站 下载最新版 OpenSSL。
      • 安装完成后,确保将 OpenSSL 的安装路径添加到系统环境变量中。

    4. 验证 Python 是否正确链接到新的 OpenSSL

    即使升级了 OpenSSL,Python 可能仍然链接到旧版本的库。可以通过以下步骤验证并修复:

    • 卸载并重新安装 PyOpenSSL 以适配新版本的 OpenSSL:
    
    pip uninstall pyopenssl
    pip install pyopenssl
    

    此外,可以运行以下代码检查 Python 当前使用的 OpenSSL 版本:

    
    import ssl
    print(ssl.OPENSSL_VERSION)
    

    5. 测试解决方案

    完成上述步骤后,运行以下测试代码验证问题是否解决:

    
    import urllib3
    
    http = urllib3.PoolManager()
    response = http.request('GET', 'https://httpbin.org/get')
    print(response.status, response.data.decode('utf-8'))
    

    如果代码运行无误且返回 HTTP 状态码为 200,则说明问题已成功解决。

    6. 解决方案流程图

    以下是解决问题的整体流程图:

    ```mermaid
    flowchart TD
        A[开始] --> B{检查 OpenSSL 版本}
        B --低于 1.1.1--> C[升级 OpenSSL]
        C --> D{操作系统类型}
        D --Linux--> E[使用包管理器升级]
        D --Windows--> F[下载并配置 OpenSSL]
        E --> G[验证 Python 链接]
        F --> G
        G --> H[运行测试代码]
        H --> I[结束]
    ```
    

    7. 常见问题与注意事项

    在解决过程中,可能会遇到以下常见问题:

    问题原因解决方案
    升级后仍报错Python 未正确链接到新版本 OpenSSL重新安装 PyOpenSSL 或更新 Python
    Windows 环境变量配置错误OpenSSL 路径未正确添加检查环境变量 PATH 中是否包含 OpenSSL 安装路径
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 10月23日
  • 创建了问题 4月28日