python-3.x SSL:版本号错误

bq3bfh9z  于 2023-03-31  发布在  Python
关注(0)|答案(3)|浏览(216)

我发布这样的请求:

requests.post(URL, headers=HEADERS, cookies=COOKIES, data=DATA, proxies=proxy_list[ip_index], timeout=4)

并返回以下错误:

HTTPSConnectionPool(host='www.example.com', port=443): Max retries exceeded with url: /someurl (Caused by SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1123)')))
iyfjxgzm

iyfjxgzm1#

根据代理设置,代理服务器可能会对此负责。如果您将https_proxy设置为https://路径,则代理服务器可能会干扰TLS的验证过程。将此设置更改为http://proxy.address将允许代理服务器打开连接,然后在主机和目标之间进行TLS握手。
使用类似的设置来尝试curl -v可能会很有用,因为python ssl绑定可能会误解/掩盖底层库的错误。
在这个问题的根源上,我推测最近像Debian这样的发行版的长期稳定映像的更新导致了大量这些问题的出现,这些问题可能以前是看不见的。

ahy6op9u

ahy6op9u2#

这解决了我在Linux下的问题:

pip3 install urllib3==1.23
mwecs4sa

mwecs4sa3#

在我的例子中,它是由URL中的错别字引起的:
如果URL有https协议,python将尝试执行SSL握手,服务器将无法理解它。SSL库将被响应混淆并抛出错误。
所以,替换协议就成功了:

https://example.com
http://example.com

相关问题