如何在fiddler中捕获python https流量?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在fiddler中捕获python https流量?相关的知识,希望对你有一定的参考价值。

当我尝试执行一些数据获取任务时,Python会抛出错误。这只有在我设置fiddler解密https流量时才会发生。我尝试通过127.0.0.1:8888路由python流量,并与mozilla一样,以便捕获其流量。我也安装了证书,并通过提琴手信任它,我不知道我哪里出错了。

    raise SSLError(e, request=request)
    requests.exceptions.SSLError: HTTPSConnectionPool(host='google.com', port=443):
    Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: CERTIFIC
    ATE_VERIFY_FAILED] certificate verify failed (_ssl.c:748)'),))

以上是我每次尝试使用请求获取页面时出现的错误。

答案

TL; DR请求库不使用Windows证书库,它有自己的一个(根据https://bugs.python.org/issue28547)。这意味着默认情况下,您的fiddler MITM证书不可用于python请求。

你的选择是

  1. 禁用SSL验证(verify = False)
  2. 通过REQUESTS_CA_BUNDLE环境变量添加您的证书
  3. 明确添加你的fiddler证书(verify =' path to cert')

更多细节可以在http://docs.python-requests.org/en/master/user/advanced/#ssl-cert-verification找到

在旁注中,对于使用它自己的证书包而不是平台提供的请求感觉有点奇怪 - 特别是考虑到所有浏览器都乐于使用平台。

以上是关于如何在fiddler中捕获python https流量?的主要内容,如果未能解决你的问题,请参考以下文章

fiddler2在抓包的过程中如何抓取https网络包的呢

如何让Fiddler可以抓取https的请求

Fiddler教程

fiddler捕获手机https请求

Fiddler使用教程(转)

移动设备httphttps数据包抓取(Fiddler篇)