1. 程式人生 > >[Python3網絡爬蟲開發實戰] 1.7.2-mitmproxy的安裝

[Python3網絡爬蟲開發實戰] 1.7.2-mitmproxy的安裝

否則 mit -o homebrew str 官方網站 over stripe docker

mitmproxy是一個支持HTTP和HTTPS的抓包程序,類似Fiddler、Charles的功能,只不過它通過控制臺的形式操作。

此外,mitmproxy還有兩個關聯組件,一個是mitmdump,它是mitmproxy的命令行接口,利用它可以對接Python腳本,實現監聽後的處理;另一個是mitmweb,它是一個Web程序,通過它以清楚地觀察到mitmproxy捕獲的請求。

本節中,我們就來了解一下mitmproxy、mitmdump和mitmweb的安裝方式。

1. 相關鏈接

  • GitHub:https://github.com/mitmproxy/mitmproxy
  • 官方網站:https://mitmproxy.org
  • PyPI:https://pypi.python.org/pypi/mitmproxy
  • 官方文檔:http://docs.mitmproxy.org
  • mitmdump腳本:http://docs.mitmproxy.org/en/stable/scripting/overview.html
  • 下載地址:https://github.com/mitmproxy/mitmproxy/releases
  • DockerHub:https://hub.docker.com/r/mitmproxy/mitmproxy

2. pip安裝

最簡單的安裝方式還是使用pip,直接執行如下命令即可安裝:

1 pip3 install mitmproxy

這是最簡單和通用的安裝方式,執行完畢之後即可完成mitmproxy的安裝,另外還附帶安裝了mitmdump和mitmweb這兩個組件。如果不想用這種方式安裝,也可以選擇後面列出的專門針對各個平臺的安裝方式或者Docker安裝方式。

3. Windows下的安裝

可以到GitHub上的Releases頁面(鏈接為:https://github.com/mitmproxy/mitmproxy/releases/)獲取安裝包,如圖1-59所示。技術分享圖片圖1-59 下載頁面

比如,當前的最新版本為2.0.2,則可以選擇下載Windows下的exe安裝包mitmproxy-2.0.2-windows-installer.exe,下載後直接雙擊安裝包即可安裝。

註意,在Windows上不支持mitmproxy的控制臺接口,但是可以使用mitmdump和mitmweb。

4. Linux下的安裝

在Linux下,可以下載編譯好的二進制包(下載地址https://github.com/mitmproxy/mitmproxy/releases/),此發行包一般是最新版本,它包含了最新版本的mitmproxy和內置的Python 3環境,以及最新的OpenSSL環境。

如果你的環境裏沒有Python 3和OpenSSL環境,建議使用此種方式安裝。

下載之後,需要解壓並將其配置到環境變量:

1 2 tar -zxvf mitmproxy-2.0.2-linux.tar.gz sudo mv mitmproxy mitmdump mitmweb /usr/bin

這樣就可以將3個可執行文件移動到了/usr/bin目錄。而一般情況下,/usr/bin目錄都已經配置在了環境變量下,所以接下來可以直接調用這3個工具了。

5. Mac下的安裝

Mac下的安裝非常簡單,直接使用Homebrew即可,命令如下:

1 brew install mitmproxy

執行命令後,即可完成mitmproxy的安裝。

6. Docker安裝

mitmproxy也支持Docker,其DockerHub的地址為https://hub.docker.com/r/mitmproxy/mitmproxy/。

在Docker下,mitmproxy的安裝命令為:

1 docker run --rm -it -p 8080:8080 mitmproxy/mitmproxy mitmdump

這樣就在8080端口上啟動了mitmproxy和mitmdump。

如果想要獲取CA證書,可以選擇掛載磁盤選項,命令如下:

1 docker run --rm -it -v ~/.mitmproxy:/home/mitmproxy/.mitmproxy -p 8080:8080 mitmproxy/mitmproxy mitmdump

這樣就可以在~/.mitmproxy目錄下找到CA證書。

另外,還可以在8081端口上啟動mitmweb,命令如下:

1 docker run --rm -it -p 8080:8080 -p 127.0.0.1:8081:8081 mitmproxy/mitmproxy mitmweb

更多啟動方式可以參考Docker Hub的安裝說明。

7. 證書配置

對於mitmproxy來說,如果想要截獲HTTPS請求,就需要設置證書。mitmproxy在安裝後會提供一套CA證書,只要客戶端信任了mitmproxy提供的證書,就可以通過mitmproxy獲取HTTPS請求的具體內容,否則mitmproxy是無法解析HTTPS請求的。

首先,運行以下命令產生CA證書,並啟動mitmdump:

1 mitmdump

接下來,我們就可以在用戶目錄下的.mitmproxy目錄裏面找到CA證書,如圖1-60所示。

技術分享圖片圖1-60 證書文件

證書一共5個,表1-1簡要說明了這5個證書。

表1-1 5個證書及其說明

名稱

描述

mitmproxy-ca.pem

PEM格式的證書私鑰

mitmproxy-ca-cert.pem

PEM格式證書,適用於大多數非Windows平臺

mitmproxy-ca-cert.p12

PKCS12格式的證書,適用於Windows平臺

mitmproxy-ca-cert.cer

與mitmproxy-ca-cert.pem相同,只是改變了後綴,適用於部分Android平臺

mitmproxy-dhparam.pem

PEM格式的秘鑰文件,用於增強SSL安全性

下面我們介紹一下Windows、Mac、iOS和Android平臺下的證書配置過程。

Windows

雙擊mitmproxy-ca.p12,就會出現導入證書的引導頁,如圖1-61所示。

技術分享圖片圖1-61 證書導入向導

直接點擊“下一步”按鈕即可,會出現密碼設置提示,如圖1-62所示。

技術分享圖片圖1-62 密碼設置提示

這裏不需要設置密碼,直接點擊“下一步”按鈕即可。

接下來需要選擇證書的存儲區域,如圖1-63所示。這裏點擊第二個選項“將所有的證書都放入下列存儲”,然後點擊“瀏覽”按鈕,選擇證書存儲位置為“受信任的根證書頒發機構”,接著點擊“確定”按鈕,然後點擊“下一步”按鈕。

技術分享圖片圖1-63 選擇證書存儲區域

最後,如果有安全警告彈出,如圖1-64所示,直接點擊“是”按鈕即可。

技術分享圖片圖1-64 安全警告

這樣就在Windows下配置完CA證書了。

Mac

Mac下雙擊mitmproxy-ca-cert.pem即可彈出鑰匙串管理頁面,然後找到mitmproxy證書,打開其設置選項,選擇“始終信任”即可,如圖1-65所示。

技術分享圖片圖1-65 證書配置

iOS

將mitmproxy-ca-cert.pem文件發送到iPhone上,推薦使用郵件方式發送,然後在iPhone上可以直接點擊附件並識別安裝,如圖1-66所示。

技術分享圖片圖1-66 證書安裝頁面

點擊“安裝”按鈕之後,會跳到安裝描述文件的頁面,點擊“安裝”按鈕,此時會有警告提示,如圖1-67所示。

技術分享圖片圖1-67 安裝警告頁面

繼續點擊右上角的“安裝”按鈕,安裝成功之後會有已安裝的提示,如圖1-68所示。

技術分享圖片圖1-68 安裝成功頁面

如果你的iOS版本是10.3以下的話,此處信任CA證書的流程就已經完成了。

如果你的iOS版本是10.3及以上版本,還需要在“設置”→“通用”→“關於本機”→“證書信任設置”將mitmproxy的完全信任開關打開,如圖1-69所示。此時,在iOS上配置信任CA證書的流程就結束了。

技術分享圖片圖1-69 證書信任設置

Android

在Android手機上,同樣需要將證書mitmproxy-ca-cert.pem文件發送到手機上,例如直接復制文件。

接下來,點擊證書,便會出現一個提示窗口,如圖1-70所示。

技術分享圖片圖1-70 證書安裝頁面

這時輸入證書的名稱,然後點擊“確定”按鈕即可完成安裝。

[Python3網絡爬蟲開發實戰] 1.7.2-mitmproxy的安裝