由於最近在學習微信小程序開發,項目中用到了https代理請求,所以用到了基於Node實現的跨平台web調試代理工具Whistle,在此做一記錄。
完成https代理請求總共需要5個步驟。
一、安裝Node.js
在這邊就省略了
二、安裝並啟動Whistle
1.安裝Whistle
打開cmd命令窗口,執行
$ npm install -g whistle
npm默認鏡像是在國外,有時候安裝速度很慢或者出現安裝不了的情況,如果無法安裝或者安裝很慢,可以使用taobao的鏡像安裝:
$ npm install cnpm -g --registry=https://registry.npm.taobao.org
$ cnpm install -g whistle
或者直接指定鏡像安裝:
$ npm install whistle -g --registry=https://registry.npm.taobao.org
2.啟動Whistle
在cmd命令窗口中執行啟動命令:
w2 start
停止命令:
w2 stop
重啟命令:
w2 restart
3.訪問Whistle,訪問網址:
127.0.0.1:8899
三、配置代理
打開控制面板-->網絡和 Internet-->Internet 選項-->連接-->局域網設置
勾選 為LAN使用代理服務器
地址(E): 127.0.0.1 端口(T): 8899
然后確定配置。
如下圖:
此時就可以配置http請求轉發了
1.打開whistle網頁(127.0.0.1:8899)
2.在Rules規則中有一個默認的Default窗口,在此可以配置轉發請求
www.myurl.com 127.0.0.1:8080
這樣訪問www.myurl.com就會訪問127.0.0.1:8080這個地址
如果不在Default窗口配置,也可以自己新建一個,點擊Create創建
這樣只能代理非https請求 如果想代理https請求還得下載https安全證書
四、下載https安全證書
點擊whistle網頁上的HTTPS,會出現一個二維碼,在二維碼上方有一個Download RootCA,點擊下載,在二維碼下方有一個Capture HTTPS CONNECTs單選框,勾選表明攔截HTTPS請求。如圖:
htpps安全證書下載好以后,打開 -->安裝證書-->將所有的證書放入下列存儲-->受信任的根證書頒發機構。如下圖:
下載安裝完成以后得重新配置轉發請求。
五、配置請求轉發
如果配置成:
https://www.myurl.com 127.0.0.1:8080
會報下面的錯誤
From: whistle@1.9.10
Node: v8.11.1
Date: 2018-5-4 09:31:21
Error: write EPROTO 101057795:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:openssl\ssl\s23_clnt.c:827:
at _errnoException (util.js:1022:11)
at WriteWrap.afterWrite [as oncomplete] (net.js:880:14)
是因為沒辦法用https請求去訪問http服務器,改成下面的配置就OK
www.myurl.com 127.0.0.1:8080 http://www.myurl.com
這樣訪問https://www.myurl.com 就可以訪問127.0.0.1:8080這個地址了。
記得開啟攔截HTTPS:勾選 Capture HTTPS CONNECTs
點擊Network可以查看請求信息,如下圖: