我试图编写pycurl脚本来访问安全站点(HTTPS)。
c = pycurl.Curl()
c.setopt(pycurl.USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0')
c.setopt(pycurl.URL, 'https://for-example-securedsite')
c.setopt(pycurl.COOKIEFILE, 'cookie.txt')
c.setopt(pycurl.COOKIEJAR, 'cookies.txt')
c.setopt(pycurl.WRITEDATA, file("page.html","wb"))
我得到以下错误。。
pycurl.error:(60,'SSL证书问题,请验证CA证书是否正常。详细信息:\错误:14090086:SSL例程:SSL3_GET_SERVER_证书:证书验证失败')
代码失败,因为它无法获取SSL证书
如果我在代码中添加以下行,错误就会消失。
c.setopt(pycurl.SSL_VERIFYPEER, 0)
c.setopt(pycurl.SSL_VERIFYHOST, 0)
以上代码将跳过证书验证。但它受到了“中间人”的攻击。
我知道我在本地证书存储中有SSL证书。有谁知道如何导出我的证书并使用我的代码。。一些示例代码将非常棒。。
谢谢你的时间!
你是对的,你这样做会让你受到中间人的攻击,特别是在most recent SSL vulnerabilities方面。您可以按如下方式解决:
curl默认带有一个过时的证书列表。无论您是要更新它还是只使用自己的证书进行测试,请确保将更新的-certificate-chain.crt文件放在可访问的位置,并使用pycurl.CAINFO选项指向它。
还要确保pycurl.SSL_VERIFYHOST设置为2,这是最高的安全检查设置。
你读过cURL文档吗?这似乎直接解决了你的问题……特别是第2项:
pycurl模块似乎包含
CAPATH
选项,因此在代码中实现应该很简单。相关问题 更多 >
编程相关推荐