如何禁用python中的http.client.HTTPSConnection类的SSL验证?

W.J*_*ack 3 python ssl httpclient

HTTP PROTOCOL CLIENT的官方文档中

类http.client.HTTPSConnection(host,port = None,key_file = None,cert_file = None,[timeout,] source_address = None,*,context = None,check_hostname = None)

HTTPConnection的子类,它使用SSL与安全服务器进行通信。默认端口为443。如果指定了context,则它必须是描述各种SSL选项的ssl.SSLContext实例。

是否有任何选项可以禁用SSL验证,例如python请求库 verify=fasle

由于某些原因,我不能使用HTTPConnection类,这是一个简单的解决方案。我必须使用HTTPSConnection并使用

HTTPConnection.putrequest()

发送未经ssl验证的请求。

Kar*_*M V 10

在创建https连接时,请确保按以下方式传递上下文参数

import http.client
import ssl

conn = http.client.HTTPSConnection(
    HOSTNAME,
    context = ssl._create_unverified_context()
)
Run Code Online (Sandbox Code Playgroud)

  • 自 Python 3.4.3 中的 urllib 起,“urllib.request.urlopen(HOSTNAME, context = ssl._create_unverified_context())”也是如此(https://docs.python.org/3.7/library/urllib.request.html?突出显示= urllib#urllib.request.urlopen) (2认同)