c# - 如何使用 Wireshark 解密从 C# HTTP 客户端发送的 HTTPS 消息?

标签 c# https wireshark

我们有一个 .Net 4.6.1 服务,它使用 HttpWebRequest 将 HTTPS 请求发送到另一个 Web 服务。我们正在 try catch 此请求遇到的问题,以便我们可以将数据日志发送给外部服务的所有者。我们有请求/响应的 Wireshark 跟踪,但无法解密。远程服务是 Java,但这应该无关紧要。

我们发现这篇信息量很大的帖子,但它通过浏览器引用了 HTTP。 https://security.stackexchange.com/questions/35639/decrypting-tls-in-wireshark-when-using-dhe-rsa-ciphersuites/42350#42350

有没有办法获取我们系统上使用的 RSA 私钥来解码请求?这不适用于描述 HTTPS 响应,对吗? 生成 SSL keylog 文件可以解决这个问题吗?如果是这样,我们可以修改我们的代码来生成文件吗? 其他解决方案?谢谢

最佳答案

我想到了一个变通解决方案,只要您的网络基础架构允许即可。

  1. 重新配置您的客户端应用程序以通过 HTTP(而不是 HTTPS)调用远程服务器
  2. 放置代理并将您的客户端配置为通过代理发送。
  3. 配置代理以通过 HTTPS 转发(并输出到远程服务器)
  4. 使用 Wireshark 捕获客户端和代理之间的请求。

您将同时拥有请求和响应。请求应该是或多或少的 prestine 形式,响应可能会有几个来自代理的额外 header (如 Via:),但不应妨碍您进行故障排除。

关于c# - 如何使用 Wireshark 解密从 C# HTTP 客户端发送的 HTTPS 消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44034747/

相关文章:

c# - Visual Studio C# MetroFramework MetroButton 更改背景色

c# - 针对 Azure SQL DB 的 WCF 事务

mobile - 将 SSL 证书添加到 Adob​​e Air 移动应用程序

rest - Wireshark REST 分析

c# - 将 CSV 加载到 DataGridView 中

c# - 使用方法名称的属性

asp.net - 为 Asp.Net WEB API 2 自托管启用 Https

python - 如何强制 Google App Engine [python] 使用 SSL (https)?

c# - 如何在 DMX Controller 中预缓冲 ArtNet3 数据包?

networking - Linux 数据包中的熟捕获