wireshark 调试 https/http2和grpc流量

本文浏览器以 Chrom 为例

平常需要抓包的场景比较少,记录一下防止下次忘记配置

1. 解析 TLS

在本地创建用于保存 ssl logfile 的文件(文件可以存放到任意位置), 并添加到环境变量中

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

接下来在 wireshark 中配置 ssl log

image-20210714215726557

接着通过终端启动 chrom (为了确保能读到 SSLKEYLOGFILE 环境变量)

open /Applications/Google\ Chrome.app

然后随便访问 https 的网址 例如:豆瓣 https://www.douban.com

找到 豆瓣的服务器 IP 地址,方便我们在一堆网络传输中找到需要验证的请求

image-20210714220327917

image-20210714220659433

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

HTTP2

根据上面的配置, http2 也是可以查看的到的。因为 HTTP2 也工作在 TLS 上

随便找个 http2 的网站,以阿里云为例 https://www.aliyun.com/

image-20210714221832649

image-20210714221812435

image-20210714222001534

image-20210714222050609

可以看到 http2 和 http 协议的区别, http2 采用多路复用, 返回页面进行了流式传输

GRPC

在开发过程中, 除了 http , 还有 rpc 方式可以进行数据传输, 比较流行的则是 GRPC, 接下来看看 wireshark 如何调试 GRPC

首先根据 GRPC 官网的例子, 启动一个 hello server, 然后使用 hello client 进行调用一次

image-20210714222406094

首先在菜单栏配置一下 proto 文件的位置,方便 wireshark 能读取这些 rpc 定义的字段

接下来配置一下解析的端口

image-20210714222540409

image-20210714222800413

然后调用一次 grpc server go run greeter_client/main.go

可以看到 post 过去的字段, 以及返回的字段image-20210714223425150

image-20210714223346553

随便修改下代码继续验证

image-20210714223520124

image-20210714223716863

image-20210714223822070

posted @ 2021-07-14 22:48  邱佳飞  阅读(519)  评论(0编辑  收藏  举报