最近网络安全课做实验,要用wireshark捕获163邮箱的用户名和密码。众所周知,用wireshark直接抓HTTPS的包是抓不到的,需要配置sslkey.log环境变量。在虚拟机上折腾半天没弄出来,无奈转战Mac本机。配置sslkey的主要过程参考了这篇文章,写的挺清楚的了:
Mac电脑安装配置Wireshark 抓包工具,解决Https无法抓包问题https://blog.csdn.net/u011564735/article/details/112553700
但按上述方法配置完之后还是有点小问题(也不知是不是我的个别问题),用滤波器命令http.request.method=="POST" && tcp.port==443 尝试抓163邮箱的包,发现根本木有!尝试了重启Chrome,重装wireshark等方法仍不行。后来偶然间尝试用别的软件打开Chrome写入的log文件时,才发现问题所在:上述教程创建log文件时使用的命令是:
sudo /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --ssl-key-log-file=/Users/username/sslkeylog.log
即以管理员的身份运行。这样创建的log文件其他应用程序是没有权限访问的,所以不用sudo,直接:
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --ssl-key-log-file=/Users/username/sslkeylog.log
重启wireshark之后,问题成功解决。放一张抓包的图
PS:直接在上述命令打开的Chrome中就可以抓包了,无需再重启Chrome。