连接到 SSL 服务器会引发错误:
错误:14090086:SSL 例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败
我正在使用这个 urllib3 python 库连接到服务器,使用这种方法:
urllib3.connectionpool.connection_from_url(['remote_server_url'], maxsize=2)
如何忽略 SSL 验证?或者还有另一个步骤可以做到这一点?
谢谢。
连接到 SSL 服务器会引发错误:
错误:14090086:SSL 例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败
我正在使用这个 urllib3 python 库连接到服务器,使用这种方法:
urllib3.connectionpool.connection_from_url(['remote_server_url'], maxsize=2)
如何忽略 SSL 验证?或者还有另一个步骤可以做到这一点?
谢谢。
您应该能够通过覆盖ConnectionCls
任何 ConnectionPool 实例的静态属性来强制 urllib3 使用未经验证的 HTTPSConnection 对象。例如:
from urllib3.connection import UnverifiedHTTPSConnection
from urllib3.connectionpool import connection_from_url
# Get a ConnectionPool object, same as what you're doing in your question
http = connection_from_url(remote_server_url, maxsize=2)
# Override the connection class to force the unverified HTTPSConnection class
http.ConnectionCls = UnverifiedHTTPSConnection
# Make requests as normal...
r = http.request(...)
如需其他参考,您可以查看我们的一些执行类似覆盖的测试。
我已经打开了一个问题来改进我们关于如何以及何时完成的文档。如果您愿意贡献,我们总是感谢拉取请求。:)
您还可以安装可能有帮助的证书库
pip install certifi