从浏览器拦截 TLS/HTTP/2

Intercept TLS/HTTP/2 from browsers

我能够通过导出 SSL 密钥日志并在 Wireshark 中引用它来拦截进出 Chrome 的流量。

我想将 Chrome 的行为与其他主要浏览器的行为进行比较。我如何才能以 Wireshark 能够理解的格式从这些浏览器中获取密钥?

具体

我不认为那些浏览器允许您像 Chrome 和 Firefox 那样导出 SSL 密钥,Opera 可能是个例外(因为它是基于 Chromium 的浏览器)。还应该注意的是,Edge 正在过渡到 Chromium,所以它可能很快也会有这个功能。

根据您要执行此操作的原因,拦截流量的另一种方法是设置网络服务器并记录响应。例如,Nghttpd 允许您查看接收(和发送)的每个帧。我用它来研究浏览器使用的不同优先级方案 as discussed in my book(注册一个免费帐户,每天花几分钟时间免费阅读此部分)。基本上,我创建了一个包含一些资源类型的虚拟页面,并在该页面的目录中以详细模式启动了一个 nghttpd 服务器,并搜索了我正在寻找的框架信息:

nghttpd -v 443 server.key server.crt | grep -E "PRIORITY|path|weight"

然后从我感兴趣的每个浏览器请求 http://localhost,并看到每个浏览器发送的帧详细信息。