如何在 python 中禁用 http.client.HTTPSConnection 类的 ssl 验证?
Posted
技术标签:
【中文标题】如何在 python 中禁用 http.client.HTTPSConnection 类的 ssl 验证?【英文标题】:How to disable ssl verification for http.client.HTTPSConnection class in python? 【发布时间】:2018-02-21 14:12:55 【问题描述】:在HTTP PROTOCOL CLIENT的官方文档中
类 http.client.HTTPSConnection(host, port=None, key_file=None, cert_file=None, [超时, ]source_address=None, *, context=None, check_hostname=无)
HTTPConnection 的一个子类,它使用 SSL 与 安全的服务器。默认端口为 443。如果指定了上下文,则必须 是描述各种 SSL 选项的 ssl.SSLContext 实例。
是否有任何选项可以禁用 ssl 验证,如 python requests library as verify=fasle
由于某些原因,我不能使用 HTTPConnection 类,这将是一个直接的解决方案。我必须使用 HTTPSConnection 并使用
HTTPConnection.putrequest()
发送请求而无需 ssl 验证。
【问题讨论】:
【参考方案1】:在创建 https 连接时,请确保您按如下方式传递上下文参数
import http.client
import ssl
conn = http.client.HTTPSConnection(
HOSTNAME,
context = ssl._create_unverified_context()
)
【讨论】:
urllib.request.urlopen(HOSTNAME, context = ssl._create_unverified_context())
也是如此,因为 Python 3.4.3 中的 urllib (docs.python.org/3.7/library/…)以上是关于如何在 python 中禁用 http.client.HTTPSConnection 类的 ssl 验证?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Python 中使用 Selenium 在 Firefox 中禁用 Flash?