gpt4 book ai didi

python - pycurl 和 SSL 证书

转载 作者:IT老高 更新时间:2023-10-28 20:22:32 26 4
gpt4 key购买 nike

我正在尝试编写一个 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 证书是否正常。详细信息:\nerror:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed')

代码失败,因为它未能获得 SSL 证书。

如果我将以下几行添加到我的代码中,错误就会消失。

c.setopt(pycurl.SSL_VERIFYPEER, 0)   
c.setopt(pycurl.SSL_VERIFYHOST, 0)

以上代码将跳过证书验证。但它受到了“中间人”的攻击。<​​/p>

我知道我的本地证书存储中有 SSL 证书。有谁知道如何导出我的证书并在我的代码中使用它.. 一些示例代码会很棒..

感谢您的宝贵时间!

最佳答案

你是对的,你这样做的方式会使你受到中间人攻击,尤其是考虑到 most recent SSL vulnerabilities .您可以按如下方式解决:

import pycurl
curl = pycurl.Curl()
curl.setopt(pycurl.URL, "https://your-secure-website.com/")
curl.setopt(pycurl.SSL_VERIFYPEER, 1)
curl.setopt(pycurl.SSL_VERIFYHOST, 2)
curl.setopt(pycurl.CAINFO, "/path/to/updated-certificate-chain.crt")
curl.perform()

curl 默认带有一个过时的证书列表。无论您是想更新它还是只使用自己的证书进行测试,请确保将 updated-certificate-chain.crt 文件放在可访问的位置并使用 pycurl.CAINFO 选项指向它。

还要确保 pycurl.SSL_VERIFYHOST 设置为 2,即最高安全检查设置。

关于python - pycurl 和 SSL 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8332643/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com