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
命令行工具。请按照以下步骤操作:
打开终端。您可以通过搜索“Terminal”在图形界面中找到它,或者使用快捷键 Ctrl+Alt+T。
执行降级命令。在终端中输入以下命令并执行:
pip install urllib3==1.26.5
这个命令会卸载当前版本的 urllib3
并安装您指定的版本。
验证版本。安装完成后,您可以运行以下命令来确认 urllib3
的版本:
pip show urllib3
这将显示 urllib3
的详细信息,包括版本号。请确认输出中的版本号为 1.26.5
。
请注意,降级库可能会引入依赖冲突或其他问题,特别是如果您的应用依赖于 urllib3
的较新特性。建议在进行这样的更改之前备份您的环境或使用虚拟环境。如果您正在使用虚拟环境,确保在执行上述命令之前已经激活了它。
此外,虽然降级 urllib3
可能解决了您遇到的 SSL 握手失败问题,但通常更好的做法是查明根本原因并寻求解决这个根本问题的方法,比如更新服务器的 SSL 配置或修复客户端的 SSL/TLS 配置问题。降级可能只是一种临时解决方案。