SSLKEYLOGFILE 环境变量不会填充任何文本文件

Van*_*laH 7 ssl firefox google-chrome wireshark windows-10

我的操作系统是 Windows 10 64 位。我使用最新版本的 Firefox 和 Chrome。

我想保存预主密钥以便将它们与 WireShark 一起使用。

为此,我找到了很多教程,都推荐使用 SSLKEYLOGFILE 环境变量。

但是,无论我在此变量中放置什么路径,Firefox(普通版和开发者版)或 Chrome 都不会创建任何文件。即使我重新启动这些浏览器或操作系统也是如此。当我清除浏览器上的缓存时也是如此。

我找到了另一种使用 Chrome 设置 SSLKEYLOGFILE 变量的方法,方法是使用以下参数启动浏览器:

--ssl-key-log-file=PATH
Run Code Online (Sandbox Code Playgroud)

虽然这个参数确实创建了一个日志文件,但它永远不会被填充。它仍然完全是空的。

让这个问题更烦人的是,我不知道是否有任何调试日志至少可以让我知道发生了什么。

有人对如何解决这个问题有想法吗?

Ros*_*obs 6

在 Chrome 和 Firefox
Windows 10 64 位 [版本 10.0.17763.379] 中均已验证

我不会在--ssl-key-log-fileChrome 中使用该标志。在我的测试中,它没有效果。

获取 SSL 密钥日志文件的步骤

  1. 将您的目录更改为您或您的程序有权访问的目录。我正在使用桌面文件夹。

    C:\> cd $HOME\Desktop
    
    Run Code Online (Sandbox Code Playgroud)
  2. 设置SSLKEYLOGFILE变量。这为用户 (HKCU) 设置了它。要为机器 (HKLM) 设置它,请将/m标志添加到命令的末尾。

    PS C:\Users\rj\Desktop> SetX SSLKEYLOGFILE "$(get-location)\ssl.log"
    
    Run Code Online (Sandbox Code Playgroud)
  3. 验证变量是否已在单独的powershell 窗口中设置(SetX 不适用于当前窗口)。

    PS C:\Users\rj\Desktop> Get-ChildItem ENV: | findstr SSLKEYLOGFILE
    SSLKEYLOGFILE                  C:\Users\rj\Desktop\ssl.log
    
    Run Code Online (Sandbox Code Playgroud)

    您还可以通过转到“控制面板”>“系统和安全”>“系统”>“高级系统设置”>“高级”选项卡>“环境变量”>“用户变量”来验证 SSLKEYLOGFILE 是否为用户变量。您应该会看到一个类似于 powershell 示例的列表,其中的值是一个目录。

  4. 打开 Chrome/Firefox 并转到 https 网站,例如https://stackoverflow.com

  5. 您应该会ssl.log在桌面上看到一个显示。

最终结果的图像

进一步阅读

您提到您正在使用 Wireshark。如果您使用它从捕获中的 TLS 加密流中导出文件,本文可能会对您有所帮助。


DrC*_*dra 5

我遇到的一件事是:当您关闭窗口时,Chrome 并不总是完全关闭。有时它在后台保持打开状态。使用 Windows Process Explorer 列出所有进程并修复 Chrome 关闭情况。此外,重新启动 Chrome 后,您可以在 Process Explorer 中双击它并选择“环境”选项卡以列出其环境中设置的所有变量。确保 SSLKEYLOGFILE 显示在该列表中。然后 Chrome 会将密钥发送到指定的文件。