本文瀏覽器以 Chrom 為例

平常需要抓包的場景比較少,記錄一下防止下次忘記配置

1. 解析 TLS

在本地建立用於儲存 ssl logfile 的檔案(檔案可以存放到任意位置), 並新增到環境變數中

touch ~/tls/sslkeylog.log
echo "export SSLKEYLOGFILE=~/tls/sslkeylog.log" >> ~/.zshrc
source ~/.zshrc

接下來在 wireshark 中配置 ssl log

接著通過終端啟動 chrom (為了確保能讀到 SSLKEYLOGFILE 環境變數)

open /Applications/Google\ Chrome.app

然後隨便訪問 https 的網址 例如:豆瓣 https://www.douban.com

找到 豆瓣的伺服器 IP 地址,方便我們在一堆網路傳輸中找到需要驗證的請求

可以看到TLS流量解析成功了!

HTTP2

根據上面的配置, http2 也是可以檢視的到的。因為 HTTP2 也工作在 TLS 上

隨便找個 http2 的網站,以阿里云為例 https://www.aliyun.com/

可以看到 http2 和 http 協議的區別, http2 採用多路複用, 返回頁面進行了流式傳輸

GRPC

在開發過程中, 除了 http , 還有 rpc 方式可以進行資料傳輸, 比較流行的則是 GRPC, 接下來看看 wireshark 如何除錯 GRPC

首先根據 GRPC 官網的例子, 啟動一個 hello server, 然後使用 hello client 進行呼叫一次

首先在選單欄配置一下 proto 檔案的位置,方便 wireshark 能讀取這些 rpc 定義的欄位

接下來配置一下解析的埠

然後呼叫一次 grpc server go run greeter_client/main.go

可以看到 post 過去的欄位, 以及返回的欄位

隨便修改下程式碼繼續驗證