用 Wireshark 在 Firefox 或 Google Chrome 上使用 SSLKEYLOGFILE 环境变量解密 SSL 流量

原文:这

您希望使用 SSL 会话密钥解密和检查 SSL 应用程序数据

您希望在客户端系统上记录 SSL 会话密钥。

您正在客户端系统上使用 Firefox 或 Google Chrome 浏览器来访问 Web 应用程序。

注意:您还可以在客户端系统上使用 Microsoft Edge (Chromium) 浏览器访问 Web 应用程序。

描述

您可以使用 SSL 会话密钥解密 SSL 流量。执行此操作的一种方法是将 SSLKEYLOGFILE 环境变量设置为客户端操作系统上的文件名,以记录 SSL 密钥信息。此方法在以下任何情况下都很有用:

出于安全原因,您只能记录一个用户的 SSL 会话密钥。

您无权访问 BIG-IP 系统,或者不想在 BIG-IP 系统上运行命令。

您可以使用此方法解密 RSA 以及基于 Diffie-Hellman 的密钥交换(如 DHE 或 ECDHE)。

记录 SSL 会话密钥的其他方法是使用 K10209:使用 ssldump 实用程序进行数据包跟踪概述中描述的 ssldump 命令,或使用 K16700:使用 SSL::sessionsecret iRules 命令 (11.6.x) 解密 SSL 流量中描述的 iRules。

先决条件

必须满足以下先决条件才能使用此过程:

您正在客户端系统上使用 Firefox 或 Chrome 浏览器来访问 Web 应用程序。

在客户端系统上安装了 Wireshark。

程序

要在使用 Firefox 或 Chrome 时通过设置 SSLKEYLOGFILE 环境变量来解密 SSL 流量,请根据计算机的操作系统执行以下两个过程:

通过设置 SSLKEYLOGFILE 环境变量,在以下客户端系统之一上记录 SSL 会话密钥:

在 Windows 上记录 SSL 会话密钥

在 Mac 上记录 SSL 会话密钥

在 Linux 上记录 SSL 会话密钥

在 Wireshark 中加载 SSL 密钥日志文件

在 Tshark 中加载 SSL 密钥日志文件(Wireshark 的命令行版本)

注意:本文介绍如何使用 Wireshark 应用程序在数据包捕获中解密 SSL 应用程序数据;但是,您不必使用 Wireshark 来收集初始数据包捕获。有关详细信息,请参阅 Wireshark.org。此链接会将您带到 AskF5 之外的资源,并且可能会在我们不知情的情况下删除该文档。

重要提示:F5 支持 BIG-IP 系统软件。F5 不支持第三方软件,例如客户端操作系统或安装在客户端系统上的非 F5 应用程序。有关详细信息,请参阅操作系统手册。

有关这些过程的简要演示,请观看以下视频:

在 Windows 上记录 SSL 会话密钥

要通过设置 SSLKEYLOGFILE 在 Windows 上记录 SSL 会话密钥,请执行以下过程:

程序影响: 执行以下过程不应对系统产生负面影响。

登录到 Windows。

关闭所有 Firefox 和 Chrome 浏览器。

通过选择屏幕左下角的 Windows 图标来打开环境变量。

输入 env。

选择编辑帐户的环境变量。

在"环境变量"弹出窗口中,在"<用户名>的用户变量"下,选择"新建"。

对于 Variable name (变量名称),输入以下名称:

SSLKEYLOGFILE

对于 Variable value (变量值),输入 SSL 日志文件的完整路径名。

例如:

C:\Users\user1\Desktop\sslkeylog.txt

注意:您必须对输入的位置具有写入权限。

选择"确定"。

使用 Wireshark 等应用程序启动数据包捕获。

启动 Firefox 或 Chrome。

访问 Web 应用程序并执行要进行故障排除的步骤。执行此操作时,SSL 会话密钥将记录在步骤 8 中指定的文件中。

停止数据包捕获并将文件保存到客户端系统。

注意:在Wireshark中执行上传SSL密钥日志文件过程并查看解密的数据包捕获文件后,可以删除SSL日志文件以还原更改。

在 Mac 上记录 SSL 会话密钥

要通过设置 SSLKEYLOGFILE 在 Mac 上记录 SSL 会话密钥,请执行以下过程:

程序影响:执行以下过程不应对系统产生负面影响。

登录 Mac。

确保所有 Firefox 和 Chrome 浏览器都已关闭。

注意:在 Mac 中,应用程序可能会在后台运行。您必须使用屏幕左上角 Apple 菜单中的"强制退出"来强制退出应用程序。

启动 OS X 终端以进行命令行访问。

使用以下命令语法为您的帐户设置 SSLKEYLOGFILE 环境变量:

导出SSLKEYLOGFILE="/Users/<account_name>/sslkeyfile"

例如:

导出 SSLKEYLOGFILE="/Users/user1/sslkeyfile"

使用 Wireshark 或 tcpdump 等应用程序启动数据包捕获。使用以下命令在 Mac 上打开 Wireshark 应用程序,然后开始捕获:

打开 /Applications/Wireshark.app

有关 tcpdump 的信息,请参阅 K411:使用 tcpdump 实用程序进行数据包跟踪概述。

使用以下命令语法从同一终端启动 Firefox 或 Chrome:

打开 /Applications/

注: 您必须从同一命令终端启动浏览器,因为会话变量仅在终端上设置。

例如:

打开 /Applications/Firefox.app

访问 Web 应用程序并执行要进行故障排除的步骤。执行此操作时,SSL 会话密钥将记录在步骤 4 中指定的文件中。

停止数据包捕获并将文件保存到客户端系统。

注意:在Wireshark中执行上传SSL密钥日志文件过程并查看数据包解密的捕获文件后,可以通过输入以下命令删除SSL日志文件以还原更改:export SSLKEYLOGFILE=""。

在 Linux 上记录 SSL 会话密钥

要通过设置 SSLKEYLOGFILE 在 Linux 上记录 SSL 会话密钥,请执行以下过程:

程序影响:执行以下过程不应对系统产生负面影响。

登录 Linux。

关闭所有 Firefox 和 Chrome 浏览器。

打开用于命令行访问的终端。

使用以下命令语法为您的帐户设置 SSLKEYLOGFILE 环境变量:

导出 SSLKEYLOGFILE="/home/<account_name>/sslkeyfile"

例如:

导出 SSLKEYLOGFILE="/home/user1/sslkeyfile"

使用 Wireshark 或 tcpdump 等应用程序启动数据包捕获。有关 tcpdump 的信息,请参阅 K411:使用 tcpdump 实用程序进行数据包跟踪概述。

从同一终端启动 Firefox 或 Chrome。

例如:

Firefox 和

注: 您必须从同一命令终端启动浏览器,因为会话变量仅在终端上设置。

访问 Web 应用程序并执行要进行故障排除的步骤。执行此操作时,SSL 会话密钥将记录在步骤 4 中指定的文件中。

停止数据包捕获并将文件保存到客户端系统。

注意:在 Wireshark 中执行上传 SSL 密钥日志文件过程并查看解密的数据包捕获文件后,可以通过输入以下命令删除 SSL 日志文件以还原更改:export SSLKEYLOGFILE=""。

在 Wireshark 中加载 SSL 密钥日志文件

在客户端系统上打开 Wireshark。

转到编辑>首选项>协议> TLS。

注意:对于低于 3.0.0 的 Wireshark 版本,请转到编辑>首选项>协议> SSL。对于 Mac,请转到 Wireshark >首选项>协议> TLS。

对于"(Pre)-Master-Secret"日志文件名,请选择"浏览"并找到您创建的 SSL 日志文件。

选择"确定"。

在 Wireshark 中打开数据包捕获文件。

在 Wireshark 数据包窗口中,选择以前加密的数据包以查看未加密的应用程序数据。

在 Tshark(Wireshark 的命令行版本)中加载 SSL 密钥日志文件

在 Tshark 命令行上指定 tls.keylog_file: 选项。例如:

tshark -o 'tls.keylog_file:日志文件.pms' -r capture.pcap

相关推荐
ONE_Gua5 小时前
魔改chromium源码——canvas指纹修改 第一节
前端·chrome·浏览器
alden_ygq8 小时前
linux查询inode使用率
linux·运维·chrome
冷冷清清中的风风火火9 小时前
linux里怎么禁用 其他用户使用sudo添加定时器,例如创建的tomcat用户禁止使用 sudo crontab -u tomcat -e 添加定时器
linux·tomcat·firefox
gqkmiss1 天前
Chrome 135 版本开发者工具(DevTools)更新内容
服务器·网络·chrome·浏览器·chrome devtools·开发者工具
漠月瑾-西安2 天前
CNVD-2025-06046:Google Chrome沙箱逃逸漏洞大揭秘与防护指南
chrome·网络安全·cve-2025-2783
指针满天飞2 天前
CondaError: Run ‘conda init‘ before ‘conda activate‘
前端·chrome·conda
niuniu_6663 天前
针对 Python 3.7.0,以下是 Selenium 版本的兼容性建议和安装步骤
开发语言·chrome·python·selenium·测试工具
知远同学4 天前
关闭Chrome提示更新失败的弹窗
前端·chrome
Re_Virtual4 天前
Talend API Tester
chrome·restful
Nickname肖知寒4 天前
chromium魔改——CDP(Chrome DevTools Protocol)检测01
前端·chrome·chrome devtools