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

Mon*_*nch 7 c# https wireshark

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

我们发现这篇内容非常丰富的帖子,但它通过浏览器引用了 HTTP。 https://security.stackexchange.com/questions/35639/decrypting-tls-in-wireshark-when-using-dhe-rsa-ciphersuites/42350#42350

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

LB2*_*LB2 3

我想到了一个解决方案,只要您的网络基础设施允许。

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

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