由于https 使用了 TLS/SSL 加密条件,我们无法直接在wireshark的中读取到数据内容,我们先看一下正常的http包的内容 。
可以直接读取到http的header 和body 。
文章插图
但如果是https 则不行,显示的是加密的串,可以看到使用的TLS 1.2。
文章插图
为了解开这个加密的串,我们需要获得 TLS 握手后的对称秘钥 。
如果是通过浏览器打开网站的话,我们需要设置环境变量 。
export SSLKEYLOGFILE=~/.ssl-key.log
如果是通过代码请求,比如Go 语言发送https 请求,可以指定 KeyLog 文件 。func main() {f, err := os.OpenFile("keylog.txt", os.O_WRONLY|os.O_CREATE|os.O_AppEND, 0664)if err != nil {log.Fatal(err)}client := http.Client{Transport: &http.Transport{TLSClientConfig: &tls.Config{KeyLogWriter:f,InsecureSkipVerify: true,},},}_, err = client.Get("https://tech.wonter.net")if err != nil {log.Fatal(err)}}
当请求发出后,便可以通过wireshark SSL 中配置这个秘钥文件解析加密的body 。文章插图
如果是新版的wireshark则是配置 TLS 。这点需要注意 。
文章插图
解析的效果如下:
文章插图
【wireshark 如何抓包https】
推荐阅读
- 如何发挥中国移动千兆路由器的“千兆”价值?
- 茶王红叶茶滇红茶烟,如何挑选滇红茶
- 小白如何用防火墙规则和IP安全策略关闭危险端口
- 一文看懂"async"和“await”关键词是如何简化了C#中多线程的开发过程
- 如何在Rescue模式下配置网络和SSH登录
- 程序员如何实现高速成长?
- 如何优雅的打开流氓软件
- AD域用户批量修改密码_大公司如何对企业AD域进行管理?
- linux如何设置主机名称
- word文档如何在方框内打钩