You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从PowerShell的Invoke-WebRequest调用中获取TLS会话密钥?

解决PowerShell Invoke-WebRequest的TLS会话密钥导出问题

方案1:PowerShell 7+ 快速启用密钥日志

PowerShell 7基于.NET 5+,原生支持通过环境变量和开关启用SSL密钥日志:

  1. 设置SSLKEYLOGFILE环境变量,指定密钥文件路径:
    $env:SSLKEYLOGFILE = "C:\temp\ssl_keys.log"
    
  2. 启用.NET的SSL日志开关:
    [System.AppContext]::SetSwitch("System.Net.Http.SslStreamLogging", $true)
    
  3. 正常执行Invoke-WebRequest或Invoke-RestMethod,TLS会话密钥会自动写入指定文件。

方案2:PowerShell 5.1 全局配置启用(基于.NET Framework)

PowerShell 5.1依赖.NET Framework,需要修改配置文件开启密钥日志:

  1. 设置系统或用户级环境变量SSLKEYLOGFILE,指向目标日志文件(需重启PowerShell生效)。
  2. 编辑.NET Framework的配置文件:
    • 64位系统路径:C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config
    • 32位系统路径:C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config
    • 在<configuration>节点内添加:
      <runtime>
        <AppContextSwitchOverrides value="System.Net.Http.SslStreamLogging=true" />
      </runtime>
      
  3. 重启PowerShell 5.1,执行请求后密钥会写入指定日志文件。

方案3:脚本内自定义捕获(跨版本通用)

如果不想修改全局配置,可通过自定义HttpClientHandler在脚本内直接捕获密钥:

$sslLogPath = "C:\temp\ssl_keys.log"

# 创建自定义HttpHandler并订阅密钥日志事件
$handler = [System.Net.Http.HttpClientHandler]::new()
$eventJob = Register-ObjectEvent -InputObject $handler -EventName "SslKeyLogEntry" -Action {
    param($sender, $e)
    Add-Content -Path $event.MessageData -Value $e.Entry
} -MessageData $sslLogPath

# 使用自定义Handler发送请求
$client = [System.Net.Http.HttpClient]::new($handler)
$response = $client.GetAsync("https://your-api-url.com").Result
# 按需处理响应内容
# Write-Output $response.Content.ReadAsStringAsync().Result

# 清理资源
Unregister-Event -SourceIdentifier $eventJob.Name
$client.Dispose()
$handler.Dispose()

注意事项

  • 确保日志文件所在目录有写入权限,建议提前创建目录(如C:\temp)。
  • 在Wireshark中配置密钥文件路径:编辑 > 首选项 > Protocols > SSL > (Pre)-Master-Secret log filename,指定生成的日志文件即可解密HTTPS流量。

内容的提问来源于stack exchange,提问作者fulRicardosun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 12:25:23