旧版python版本的SSL上下文

Noo*_*tor 7 python sockets ssl https sslcontext

我有一个代码如下:

headers = {'content-type': 'ContentType.APPLICATION_XML'}
uri = "www.client.url.com/hit-here/"
clientCert = "path/to/cert/abc.crt"
clientKey = "path/to/key/abc.key"
PROTOCOL = ssl.PROTOCOL_TLSv1
context = ssl.SSLContext(PROTOCOL)
context.load_default_certs()
context.load_cert_chain(clientCert, clientKey)
conn = httplib.HTTPSConnection(uri, some_port, context=context)
Run Code Online (Sandbox Code Playgroud)

我不是一个真正的网络程序员,所以我做了一些谷歌握手连接,发现ssl.SSLContext(PROTOCOL)作为所需的功能,代码工作正常.

然后我遇到了障碍,我的本地版本为2.7.10但是所有的生产框都有2.7.3,所以SSLContext不支持升级python版本不是一个选项/控制.

我尝试读取ssl - 用于套接字对象的SSL包装器,但无法理解它.

我尝试了什么(徒劳):

s_ = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s = ssl.wrap_socket(s_, keyfile=clientKey, certfile=clientCert, cert_reqs=ssl.CERT_REQUIRED)
new_conn = s.connect((uri, some_port))
Run Code Online (Sandbox Code Playgroud)

但回报:

SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)')
Run Code Online (Sandbox Code Playgroud)

问题 - 如何在旧版本上生成SSL上下文以便建立安全的https连接?

Vik*_*ana 0

您必须指定 ca_certs 文件(应指向信任存储)