zoukankan      html  css  js  c++  java
  • 如何使用Wireshark抓取HTTP2报文?

    由于主流浏览器都只支持HTTP/2 Over TLS,也就是说当前HTTP/2网站都使用了HTTPS,数据传输都经过了SSL加密。
    所以默认情况下,Wireshark抓到的包是这样的,SSL层之上的协议细节完全看不到

    Wireshark 的抓包原理是直接读取并分析网卡数据,要想让它解密 HTTPS 流量,有两个办法:
    1)如果你拥有 HTTPS 网站的加密私钥,可以用来解密这个网站的加密流量;
    2)某些浏览器支持将 TLS 会话中使用的对称密钥保存在外部文件中,可供 Wireshark 加密使用。

    Firefox 和 Chrome 都支持生成上述第二种方式的文件,具体格式见这里:NSS Key Log Format
    但 Firefox 和 Chrome 只会在系统环境变量中存在 SSLKEYLOGFILE 路径时才会生成它,先来加上这个环境变量(以 OSX 为例):

    # 新建sslkeylog.log文件
    mkdir ~/tls && touch ~/tls/sslkeylog.log
    # 添加环境变量
    export SSLKEYLOGFILE=~/tls/sslkeylog.log
    

    接着,在 Wireshark 的 SSL 配置面板的 「(Pre)-Master-Secret log filename」选项中这个文件选上。如下图:

    通过终端启动 Firefox 或 Chrome(确保能读取到环境变量):

    open /Applications/Google Chrome.app
    

    启动chrome后访问http2网站抓包结果如图

    已经可以看到http2请求的响应体了

    参考:
    使用 Wireshark 调试 HTTP/2 流量

  • 相关阅读:
    Ucenter会员整合
    站点收藏
    天天团购整理笔记一
    MSSQLSERVER 时间差计算
    shell 编程实例练习(一)
    Linux PCI 设备驱动基本框架(二)
    Shell grep / sed 学习
    转:Python自省(反射)指南
    Shell 数组与双括号
    Python基本数据生成
  • 原文地址:https://www.cnblogs.com/jesse131/p/12686304.html
Copyright © 2011-2022 走看看