针对python 2.6.6的SSL认证

针对python 2.6.6的SSL认证,python,http,ssl,Python,Http,Ssl,我有一些python代码来发出https post请求(api调用)和python3,需要将其转换为python 2.6.6 我在网上搜索一些解决方案,但仍然不清楚2.6.6中与我目前拥有的SSL功能等效的是什么 import ssl import http.client context = ssl.create_default_context(ssl.Purpose.SERVER_AUTH, cafile='mycer.cer') context.verify_mode = ss

我有一些python代码来发出https post请求(api调用)和python3,需要将其转换为python 2.6.6

我在网上搜索一些解决方案,但仍然不清楚2.6.6中与我目前拥有的SSL功能等效的是什么

import ssl
import http.client

   context = ssl.create_default_context(ssl.Purpose.SERVER_AUTH, cafile='mycer.cer')
   context.verify_mode = ssl.CERT_REQUIRED
   context.load_cert_chain(certfile='mycrt.crt', keyfile='mykey.key', 
   password='mypass')

   conn = http.client.HTTPSConnection("example.com", context=context) 


因此,上面的代码片段允许我使用SSL证书身份验证连接到网页,然后我可以继续发出get/post请求

我知道http.client在Python2.x中被称为httplib,但是我使用的SSL函数至少需要2.7.9 python,2.6.6没有create_default_context函数

如何在python2.6.6中创建等价物


感谢大家的帮助

我建议不要在这个古老的Python版本(2010年发布)上花费时间来实现它,而是改用最新的Python版本。即使您解决了这个问题,您也可能会遇到更多的问题,因为这个旧版本可能带有一个古老的OpenSSL,您在连接到最新的SSL服务器时会遇到很多麻烦。@SteffenUllrich我也希望使用新版本来做这件事,但出于工作目的,升级不是一个选项。您可以在Python2.6中找到SSL支持的文档。据我所知,Python2.6默认情况下没有检查任何证书。另外,我认为它不支持SNI,这也常常导致SSL握手失败。您也可以直接使用。这也不会进行证书验证。我建议您不要花时间在这个古老的Python版本(2010年发布)上实现它,而是改用最新的Python版本。即使您解决了这个问题,您也可能会遇到更多的问题,因为这个旧版本可能带有一个古老的OpenSSL,您在连接到最新的SSL服务器时会遇到很多麻烦。@SteffenUllrich我也希望使用新版本来做这件事,但出于工作目的,升级不是一个选项。您可以在Python2.6中找到SSL支持的文档。据我所知,Python2.6默认情况下没有检查任何证书。另外,我认为它不支持SNI,这也常常导致SSL握手失败。您也可以直接使用。这也不进行证书验证。