Qeasy Cloud
Get Started

Caused by SSLError(SSLError(1, ‘[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] 解决办法

1 comments

python requests 报错:Caused by SSLError(SSLError(1, ‘[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure 彻底解决

出现错误:

  File "/usr/local/lib/python3.11/site-packages/requests/api.py", line 115, in post
    return request("post", url, data=data, json=json, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/requests/api.py", line 59, in request
    return session.request(method=method, url=url, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/requests/sessions.py", line 589, in request
    resp = self.send(prep, **send_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/requests/sessions.py", line 703, in send
    r = adapter.send(request, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/requests/adapters.py", line 517, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='xxxxx.com', port=443): Max retries exceeded with url: /gmp/auth/client/getToken?clientId=xxxx&sign=xxxx(Caused by SSLError(SSLError(1, '[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:1006)')))

解决方法:降低urllib3版本,pip install urllib3==1.26.5

要降级 urllib3 到指定版本(在这个例子中是 1.26.5),您可以使用 pip 命令行工具。请按照以下步骤操作:

  1. 打开终端。您可以通过搜索“Terminal”在图形界面中找到它,或者使用快捷键 Ctrl+Alt+T。

  2. 执行降级命令。在终端中输入以下命令并执行:

       pip install urllib3==1.26.5

    这个命令会卸载当前版本的 urllib3 并安装您指定的版本。

  3. 验证版本。安装完成后,您可以运行以下命令来确认 urllib3 的版本:

       pip show urllib3

    这将显示 urllib3 的详细信息,包括版本号。请确认输出中的版本号为 1.26.5

请注意,降级库可能会引入依赖冲突或其他问题,特别是如果您的应用依赖于 urllib3 的较新特性。建议在进行这样的更改之前备份您的环境或使用虚拟环境。如果您正在使用虚拟环境,确保在执行上述命令之前已经激活了它。

此外,虽然降级 urllib3 可能解决了您遇到的 SSL 握手失败问题,但通常更好的做法是查明根本原因并寻求解决这个根本问题的方法,比如更新服务器的 SSL 配置或修复客户端的 SSL/TLS 配置问题。降级可能只是一种临时解决方案。