【发布时间】:2021-09-17 08:25:12
【问题描述】:
我正在尝试使用 requests 库在 python 中实现代理,但我一遍又一遍地收到相同的错误。这是我的代码:
proxies = {
'http': 'http://127.0.0.1:24000',
'https': 'https://127.0.0.1:24000',
}
resp = requests.get('https://api.myip.com', proxies=proxies)
print(resp.text)
我正在使用 Bright Data 的代理管理器,我怀疑我的代理实现是错误的。我得到的错误是:
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='api.myip.com', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1129)')))
我已经尝试过我在网上找到的解决方案,例如 verify=false,它适用于此链接,但不适用于我需要访问的其他链接,这就是我寻找更安全解决方案的原因。
【问题讨论】:
-
首先,https 代理设置应该指向
http://...而不是https://...- 至少如果您使用最新版本的请求。然后,如果您希望它更安全,那么您需要信任颁发相关证书的特定 CA。目前尚不清楚这是什么 CA。并且 verify=false 不适用于其他链接可能仅仅是因为这些是需要以不同方式处理的其他问题 - 但如果没有明确的错误,就不可能说出如何处理。 -
感谢您的回复。在我替换了代理设置后,它开始使用这个和其他 url。我会调查证书和其他错误。
标签: python ssl python-requests