使用加密的PEM客户端证书调用restapi

2024-04-28 15:30:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个加密的客户端证书和一个加密的密钥作为PEM文件,我想在一个网站上进行身份验证,并使用python脚本(通过GET)获取页面。我已经用壳中的旋度做到了。所以我试图从python脚本调用curl,但是我不能使用子流程.Popen通过stdin发送密码,因为curl不通过stdin读取密码(类似于ssh)。如果有一种方法可以使用python标准libs来解码加密证书并使用它访问web站点,我会更高兴。在

我找到了一些解决类似问题的建议,但没有一个符合我的所有要求:

  • 我不想在任何地方保存未加密的证书。在
  • 用户只应提供他们的密码短语一次,然后应提出几个请求。在
  • 它必须与Python2.7.3兼容,最好是与Python2.6一起使用

Tags: 文件脚本身份验证密码客户端get网站stdin
1条回答
网友
1楼 · 发布于 2024-04-28 15:30:01

我用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()

相关问题 更多 >