当我们web服务启用TLS协议之后,我们通过wireshark抓包是无法查看应用层的数据的,看到的是加密过后的数据。这个时候如果我们拥有https网站的加密私钥,我们可以来解密改网站的加密流量,此外Firfox 和Chrome支持将TLS会话中使用的对称密钥保存在文件中,这个可以为wireshark使用,也可以查看TLS加密的数据。现在我们来看第二种方式操作方式。
wireshark是一款强大的网络协议包分析工具,我们可以从https://www.wireshark.org/download.html下载对应操作系统的wireshark软件包。
我们以mac oss为例,首先查看我们的shell 版本。

然后我们在当前用户目录查看是否有tls目录,并且在目录下是否有保存会话密钥的log文件。如果没有我们通过如下命令进行创建
mkdir ~/tls && touch ~/tls/sslkeylog.log
然后将SSLKEYLOGFILE路径与之对应。通过如下方式将SSLKEYLOGFILE添加到环境变量中
echo "export SSLKEYLOGFILE=~/tls/sslkeylog.log" >> ~/.bash_profile &&. ~/.bash_profile
接下来,我们打开wireshark。在面板>protocol中选择TLS ,如下图所示,填上sslkeylog.log文件的路径

我们重启chrome浏览器和wireshark ,打开www.alonehero.com站点,在wireshark进行抓包 ,过滤器中选择 http2 ,如下图所示

这个时候我们就可以分享HTTP2协议中的内容。

发表评论