簡體   English   中英

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

[英]How to capture python https traffic in fiddler?

每當我嘗試執行某些數據獲取任務時,Python 都會出錯。 這只發生在我設置 fiddler 來解密 https 流量時。 我已經嘗試通過 127.0.0.1:8888 路由 python 流量,並且與 mozilla 相同,以便捕獲其流量。 我還安裝了證書並通過 fiddler 信任它,我不確定我哪里出錯了。

    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 requests 庫不使用 Windows 證書存儲,它有自己的一個(根據https://bugs.python.org/issue28547 )。 這意味着默認情況下,您的提琴手 MITM 證書不可用於 python 請求。

您的選擇是

  1. 禁用 SSL 驗證(verify=False)
  2. 通過 REQUESTS_CA_BUNDLE 環境變量添加您的證書
  3. 明確添加您的提琴手證書(verify='\\path\\to\\cert')

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

另一方面,請求使用自己的證書包而不是平台提供的證書確實感覺有點奇怪 - 特別是考慮到所有瀏覽器都樂於使用平台的。

正如 polhemic 和 Eric Aronesty 所指出的,出於測試目的,您可以暫時將“CURL_CA_BUNDLE”設置為空字符串。

import os
os.environ['CURL_CA_BUNDLE'] = ''

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM