我使用以下命令导出了一个新的用户变量 SSLKEYLOGFILE:
export SSLKEYLOGFILE=($HOME)/sslkeylog.log
如果我正常打开 Firefox 或 Chrome,则不会 创建sslkeylog.log文件(即使创建了,即使我通过浏览器浏览 ssl 流量,它也是空的)。是否有特殊的终端命令可以打开启用了这些功能的浏览器?如果是,那是什么?
我使用以下命令导出了一个新的用户变量 SSLKEYLOGFILE:
export SSLKEYLOGFILE=($HOME)/sslkeylog.log
如果我正常打开 Firefox 或 Chrome,则不会 创建sslkeylog.log文件(即使创建了,即使我通过浏览器浏览 ssl 流量,它也是空的)。是否有特殊的终端命令可以打开启用了这些功能的浏览器?如果是,那是什么?
省略括号
如果您
export
在命令后执行(不带参数),您将看到SSLKEYLOGFILE
设置为(/home/username)/sslkeylog.log
,这不是有效路径。省略括号:“正常”打开的应用程序仍然看不到环境变量
根据Bash 参考手册:
...以及类似的破折号手册:
...导出的环境变量只会传递给同一进程或子进程中的后续命令。因此,如果您打开终端并执行
export SSLKEYLOGFILE...
命令,则只有从同一终端(或更准确地说,该终端中的同一 shell 进程)生成的应用程序(进程)才能看到环境变量。如果您google-chrome(-stable)
从该终端运行,它将看到SSLKEYLOGFILE
变量并写入指定的文件。如果您通过应用程序启动器(我假设您认为正常)打开 google chrome,它将不是终端的子进程,因此不会知道该
SSLKEYLOGFILE
变量。另请注意,如果 chrome 已在运行,则
google-chrome-stable
在终端中执行将在已运行的进程中打开一个新窗口。pstree
您可以通过在终端中执行来查看进程树。由于这不是问题的一部分,因此我不会在这里详细介绍,但是在Ubuntu 社区 wiki中解释了设置会话范围或系统范围的持久环境变量
我想与他人分享,上面提到的解决方案在 ubuntu 18.10 上使用 chrome 对我有用
您可以从终端启动一个站点,使用
对我来说,我想在wireshark 中阅读tcp 对话。
请注意,我没有尝试Firefox。它可能有效,但我不想花时间去弄清楚。mozilla 指出它默认禁用 debian https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Key_Log_Format
由于我是新成员,因此论坛不会让我对解决方案进行投票。
编辑:在wireshark v3.2.7(参考2021年2月)中,协议列表中不再有“SSL”选项。改用“TLS”
我对这个问题的解决方案是使用 chromium,因为 firefox 49,48 在 debian 和 kali linux 上禁用了这个功能,所以首先你必须执行这个命令:
将此附加到文件末尾
输入ctrl+x和y保存文件。然后从控制台执行 chromium 以传递以下标志:
如果你 cat 文件,你会看到它被填充了。欲了解更多信息,请访问:
developer.mozilla.org/NSS 密钥日志格式
如何使用 Wireshark 解密 SSL