[Python3 網(wǎng)絡(luò)爬蟲開發(fā)實(shí)戰(zhàn)] 1.7.2-mitmproxy 的安裝
mitmproxy 是一個(gè)支持 HTTP 和 HTTPS 的抓包程序,類似 Fiddler、Charles 的功能,只不過它通過控制臺(tái)的形式操作。
此外,mitmproxy 還有兩個(gè)關(guān)聯(lián)組件,一個(gè)是 mitmdump,它是 mitmproxy 的命令行接口,利用它可以對(duì)接 Python 腳本,實(shí)現(xiàn)監(jiān)聽后的處理;另一個(gè)是 mitmweb,它是一個(gè) Web 程序,通過它以清楚地觀察到 mitmproxy 捕獲的請(qǐng)求。
本節(jié)中,我們就來了解一下 mitmproxy、mitmdump 和 mitmweb 的安裝方式。
1. 相關(guān)鏈接
GitHub:https://github.com/mitmproxy/mitmproxy
官方網(wǎng)站: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 安裝
最簡(jiǎn)單的安裝方式還是使用 pip,直接執(zhí)行如下命令即可安裝:
1
pip3 install mitmproxy
這是最簡(jiǎn)單和通用的安裝方式,執(zhí)行完畢之后即可完成 mitmproxy 的安裝,另外還附帶安裝了 mitmdump 和 mitmweb 這兩個(gè)組件。如果不想用這種方式安裝,也可以選擇后面列出的專門針對(duì)各個(gè)平臺(tái)的安裝方式或者 Docker 安裝方式。
3. Windows 下的安裝
可以到 GitHub 上的 Releases 頁面(鏈接為:https://github.com/mitmproxy/mitmproxy/releases/)獲取安裝包,如圖 1-59 所示。 圖 1-59 下載頁面
比如,當(dāng)前的最新版本為 2.0.2,則可以選擇下載 Windows 下的 exe 安裝包 mitmproxy-2.0.2-windows-installer.exe,下載后直接雙擊安裝包即可安裝。
注意,在 Windows 上不支持 mitmproxy 的控制臺(tái)接口,但是可以使用 mitmdump 和 mitmweb。
4. Linux 下的安裝
在 Linux 下,可以下載編譯好的二進(jìn)制包(- https://github.com/mitmproxy/mitmproxy/releases/),此發(fā)行包一般是最新版本,它包含了最新版本的 mitmproxy 和內(nèi)置的 Python 3 環(huán)境,以及最新的 OpenSSL 環(huán)境。
如果你的環(huán)境里沒有 Python 3 和 OpenSSL 環(huán)境,建議使用此種方式安裝。
下載之后,需要解壓并將其配置到環(huán)境變量:
1
2
tar -zxvf mitmproxy-2.0.2-linux.tar.gz
sudo mv mitmproxy mitmdump mitmweb /usr/bin
這樣就可以將 3 個(gè)可執(zhí)行文件移動(dòng)到了 /usr/bin 目錄。而一般情況下,/usr/bin 目錄都已經(jīng)配置在了環(huán)境變量下,所以接下來可以直接調(diào)用這 3 個(gè)工具了。
5. Mac 下的安裝
Mac 下的安裝非常簡(jiǎn)單,直接使用 Homebrew 即可,命令如下:
1
brew install mitmproxy
執(zhí)行命令后,即可完成 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 端口上啟動(dòng)了 mitmproxy 和 mitmdump。
如果想要獲取 CA 證書,可以選擇掛載磁盤選項(xiàng),命令如下:
1
docker run --rm -it -v ~/.mitmproxy:/home/mitmproxy/.mitmproxy -p 8080:8080 mitmproxy/mitmproxy mitmdump
這樣就可以在~/.mitmproxy 目錄下找到 CA 證書。
另外,還可以在 8081 端口上啟動(dòng) mitmweb,命令如下:
1
docker run --rm -it -p 8080:8080 -p 127.0.0.1:8081:8081 mitmproxy/mitmproxy mitmweb
更多啟動(dòng)方式可以參考 Docker Hub 的安裝說明。
7. 證書配置
對(duì)于 mitmproxy 來說,如果想要截獲 HTTPS 請(qǐng)求,就需要設(shè)置證書。mitmproxy 在安裝后會(huì)提供一套 CA 證書,只要客戶端信任了 mitmproxy 提供的證書,就可以通過 mitmproxy 獲取 HTTPS 請(qǐng)求的具體內(nèi)容,否則 mitmproxy 是無法解析 HTTPS 請(qǐng)求的。
首先,運(yùn)行以下命令產(chǎn)生 CA 證書,并啟動(dòng) mitmdump:
1
mitmdump
接下來,我們就可以在用戶目錄下的.mitmproxy 目錄里面找到 CA 證書,如圖 1-60 所示。
圖 1-60 證書文件
證書一共 5 個(gè),表 1-1 簡(jiǎn)要說明了這 5 個(gè)證書。
表 1-1 5 個(gè)證書及其說明
名稱
描述
mitmproxy-ca.pem
PEM 格式的證書私鑰
mitmproxy-ca-cert.pem
PEM 格式證書,適用于大多數(shù)非 Windows 平臺(tái)
mitmproxy-ca-cert.p12
PKCS12 格式的證書,適用于 Windows 平臺(tái)
mitmproxy-ca-cert.cer
與 mitmproxy-ca-cert.pem 相同,只是改變了后綴,適用于部分 Android 平臺(tái)
mitmproxy-dhparam.pem
PEM 格式的秘鑰文件,用于增強(qiáng) SSL 安全性
下面我們介紹一下 Windows、Mac、iOS 和 Android 平臺(tái)下的證書配置過程。
Windows
雙擊 mitmproxy-ca.p12,就會(huì)出現(xiàn)導(dǎo)入證書的引導(dǎo)頁,如圖 1-61 所示。
圖 1-61 證書導(dǎo)入向?qū)?/p>
直接點(diǎn)擊 “下一步” 按鈕即可,會(huì)出現(xiàn)密碼設(shè)置提示,如圖 1-62 所示。
圖 1-62 密碼設(shè)置提示
這里不需要設(shè)置密碼,直接點(diǎn)擊 “下一步” 按鈕即可。
接下來需要選擇證書的存儲(chǔ)區(qū)域,如圖 1-63 所示。這里點(diǎn)擊第二個(gè)選項(xiàng) “將所有的證書都放入下列存儲(chǔ)”,然后點(diǎn)擊 “瀏覽” 按鈕,選擇證書存儲(chǔ)位置為 “受信任的根證書頒發(fā)機(jī)構(gòu)”,接著點(diǎn)擊 “確定” 按鈕,然后點(diǎn)擊 “下一步” 按鈕。
圖 1-63 選擇證書存儲(chǔ)區(qū)域
最后,如果有安全警告彈出,如圖 1-64 所示,直接點(diǎn)擊 “是” 按鈕即可。
圖 1-64 安全警告
這樣就在 Windows 下配置完 CA 證書了。
Mac
Mac 下雙擊 mitmproxy-ca-cert.pem 即可彈出鑰匙串管理頁面,然后找到 mitmproxy 證書,打開其設(shè)置選項(xiàng),選擇 “始終信任” 即可,如圖 1-65 所示。
圖 1-65 證書配置
iOS
將 mitmproxy-ca-cert.pem 文件發(fā)送到 iPhone 上,推薦使用郵件方式發(fā)送,然后在 iPhone 上可以直接點(diǎn)擊附件并識(shí)別安裝,如圖 1-66 所示。
圖 1-66 證書安裝頁面
點(diǎn)擊 “安裝” 按鈕之后,會(huì)跳到安裝描述文件的頁面,點(diǎn)擊 “安裝” 按鈕,此時(shí)會(huì)有警告提示,如圖 1-67 所示。
圖 1-67 安裝警告頁面
繼續(xù)點(diǎn)擊右上角的 “安裝” 按鈕,安裝成功之后會(huì)有已安裝的提示,如圖 1-68 所示。
圖 1-68 安裝成功頁面
如果你的 iOS 版本是 10.3 以下的話,此處信任 CA 證書的流程就已經(jīng)完成了。
如果你的 iOS 版本是 10.3 及以上版本,還需要在 “設(shè)置”→“通用”→“關(guān)于本機(jī)”→“證書信任設(shè)置” 將 mitmproxy 的完全信任開關(guān)打開,如圖 1-69 所示。此時(shí),在 iOS 上配置信任 CA 證書的流程就結(jié)束了。
圖 1-69 證書信任設(shè)置
Android
在 Android 手機(jī)上,同樣需要將證書 mitmproxy-ca-cert.pem 文件發(fā)送到手機(jī)上,例如直接復(fù)制文件。
接下來,點(diǎn)擊證書,便會(huì)出現(xiàn)一個(gè)提示窗口,如圖 1-70 所示。
圖 1-70 證書安裝頁面
這時(shí)輸入證書的名稱,然后點(diǎn)擊 “確定” 按鈕即可完成安裝。
Python 網(wǎng)絡(luò)
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。