【问题标题】:How to disable ssl verification for http.client.HTTPSConnection class in python?如何在 python 中禁用 http.client.HTTPSConnection 类的 ssl 验证?
【发布时间】: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 验证。

【问题讨论】:

    标签: python ssl httpclient


    【解决方案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/…)
    猜你喜欢
    • 2018-08-01
    • 1970-01-01
    • 2021-09-08
    • 2022-08-04
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 2020-07-12
    相关资源
    最近更新 更多