HTTP2-wireshark-抓包

本文最后更新于:2021年3月1日 晚上

主流浏览器都大多都支持 HTTP/2 Over TLS
HTTP2 网站都使用了 HTTPS,数据传输都经过了 SSL 加密
默认情况下,Wireshark抓到的包没有密钥,只能解析到SSL层,在其之上的协议细节完全看不到(即:在这种情况下,如果尝试取抓的话,抓到的是TLS的包)

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

Firefox 和 Chrome 都支持生成上述第二种方式的文件,具体格式见这里:NSS Key Log Format

  • 添加浏览器密钥记录日志环境变量
    Firefox 和 Chrome 只会在系统环境变量中存在 SSLKEYLOGFILE 路径时才会生成它

    如果系统环境变量中没有这个值,那么就手动创建一个

  • wireshark 配置
    在 wireshark 首选项中配置读取浏览器密钥记录
    菜单栏-编辑-首选项-协议-TLS

    将浏览器密钥日志填入

  • 测试
    过滤器中直接填入http2协议,浏览器访问一个http2的网站即可
    例如:https://http2.akamai.com/demo

注意,访问网站不能使用代理,否则不会走http2


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!