Wireshark + Chrome HTTPS 数据包抓取配置指南

本文详细介绍如何在Windows、Mac和Linux系统上配置Wireshark和Chrome浏览器,实现HTTPS数据包的捕获和解密。

Windows 配置过程

1. 配置系统环境变量

首先需要设置系统环境变量,让Chrome浏览器能够输出SSL密钥日志。

操作步骤:

  1. 打开系统属性 > 高级 > 环境变量
  2. 在用户变量或系统变量中新建:
    • 变量名SSLKEYLOGFILE
    • 变量值:指定日志文件存储路径,如C:\\\\path\\\\to\\\\sslkey.log

配置系统环境变量

2. 配置 Wireshark

接下来配置Wireshark使用Chrome生成的SSL密钥日志文件来解密HTTPS流量。

操作步骤:

  1. 打开Wireshark
  2. 进入首选项设置:
    • 中文界面:编辑 > 首选项 > 协议 > SSL
    • 英文界面:Edit > Preferences > Protocols > SSL
  3. 在SSL设置中,找到(Pre)-Master-Secret log filename选项
  4. 填入之前设置的SSLKEYLOGFILE文件路径

3. 验证配置

完成配置后,按照以下步骤验证:

  1. 启动Chrome浏览器访问HTTPS网站
  2. 在Wireshark中开始抓包
  3. 确认能够看到解密后的HTTPS内容

注意事项

重要提示:Chrome需要开启开发者模式才会记录TLS密钥。

开启步骤:

  1. 打开Chrome浏览器
  2. 点击右上角菜单 > 更多工具 > 扩展程序
  3. 在扩展程序页面右上角开启"开发者模式"

开发者模式

Mac 配置过程

1. 设置环境变量

vim ~/.bash_profile
export SSLKEYLOGFILE=~/ssl_key/ssl.log

2. 启动Chrome浏览器

使用特殊命令启动Chrome,确保记录SSL密钥:

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --user-data-dir=/tmp/chrome --ssl-key-log-file=~/ssl_key/ssl.log

3. 验证密钥日志

tail -f ~/ssl_key/ssl.log

4. 配置Wireshark

  1. 打开Wireshark
  2. 设置TLS密钥日志路径为~/ssl_key/ssl.log
  3. 开始抓包

Linux 配置过程

1. 设置环境变量

# 创建密钥日志目录
mkdir -p ~/ssl_key

# 设置 SSL 密钥日志文件环境变量
export SSLKEYLOGFILE=~/ssl_key/ssl.log

# 验证环境变量设置
echo $SSLKEYLOGFILE

2. 使用 curl 访问 HTTPS 站点

//此时通过tcpdump 等工具即可开始进行抓包。
# 基本的 curl HTTPS 请求
curl https://www.qinzc.me

# 带详细输出的 curl 请求
curl -v https://www.qinzc.me

# 使用特定 SSL 库的 curl 请求(如果需要)
curl --tlsv1.2 https:///www.qinzc.me

3. 验证密钥日志生成

# 查看密钥日志文件内容
cat ~/ssl_key/ssl.log

# 实时监控密钥日志文件
tail -f ~/ssl_key/ssl.log

看到如图CLIENT等开头的信息,说明已经导出密钥成功O(∩_∩)O

4. 密钥导入Wireshark

从Linux系统中下载 ~/ssl_key/ssl.log文件至本地,

  1. 打开Wireshark
  2. 进入首选项设置:
    • 中文界面:编辑 > 首选项 > 协议 > SSL
    • 英文界面:Edit > Preferences > Protocols > SSL
  3. 在SSL设置中,找到(Pre)-Master-Secret log filename选项
  4. 填入保存的ssl.log文件路径,后即可进行分析