0

连接到 SSL 服务器会引发错误:

错误:14090086:SSL 例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败

我正在使用这个 urllib3 python 库连接到服务器,使用这种方法:

urllib3.connectionpool.connection_from_url(['remote_server_url'], maxsize=2)

如何忽略 SSL 验证?或者还有另一个步骤可以做到这一点?

谢谢。

4

2 回答 2

1

您应该能够通过覆盖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(...)

如需其他参考,您可以查看我们的一些执行类似覆盖的测试。

我已经打开了一个问题来改进我们关于如何以及何时完成的文档。如果您愿意贡献,我们总是感谢拉取请求。:)

于 2014-06-10T19:40:09.647 回答
0

您还可以安装可能有帮助的证书库

pip install certifi
于 2016-12-21T14:58:55.417 回答