没有PyCurl的卷曲式发送客户端证书:如何?

时间:2012-02-24 19:14:17

标签: python ssl curl urllib2 urllib

我们的客户希望安装在客户计算机上的客户端脚本尽可能轻松安装。这意味着没有额外的安装包,在本例中是PyCurl。

我们需要能够使用SSL连接到网站并期望获得客户端证书。目前这是通过使用os.system()调用Curl来完成的,但是要获得http返回代码,看起来我们必须使用'-v'选项来Curl并梳理此输出。不难,只是有点icky。

还有其他方法可以使用Python 2.6附带的标准库吗? 我阅读了我能找到的所有内容,但是我看不到采用非卷曲的方法。

提前感谢任何有关此主题的指导!

1 个答案:

答案 0 :(得分:3)

这样就可以了。请注意,Verisign不需要客户端证书,它只是随机获取的HTTPS站点。

import httplib

conn = httplib.HTTPSConnection('verisign.com', key_file='./my-key.pem', cert_file='./my-cert.pem')

conn.connect()
conn.request('GET', '/')

conn.set_debuglevel(20)

response = conn.getresponse()
print('HTTP status', response.status)
编辑:只是为了后人,下面Bruno的评论是有效的,这里有一篇文章如何使用stdlib的socket ssl和socket模块进行滚动,以备不时之需。

EDIT2:似乎我无法发布链接 - 只需在网上搜索“再次使用Python 2.x验证SSL服务器证书”

相关问题