我有一个加密的客户端证书和一个加密的密钥作为PEM文件,并希望在网站上进行身份验证并使用python脚本获取页面(通过GET)。我已经设法在shell中使用curl这样做了。所以我试着从python脚本调用curl但我不能使用subprocess.Popen通过stdin发送密码,因为密码不是通过stl通过curl读取的(类似于ssh)。如果有办法使用python标准库解码加密证书并使用它来访问网站,我会更高兴。
我找到了几个解决类似问题的建议,但没有满足我的所有要求:
答案 0 :(得分:0)
我设法找到了使用pycurl的解决方案:
import pycurl
from StringIO import StringIO
buffer = StringIO()
c = pycurl.Curl()
c.setopt(c.URL, MYURL)
c.setopt(c.WRITEFUNCTION, buffer.write)
c.setopt(c.SSLCERT, 'clientcert.pem')
c.setopt(c.SSLCERTPASSWD, passphrase)
c.setopt(c.SSLKEY, 'clientkey.pem')
c.perform()
c.close()
print buffer.getvalue()