我们有一个 .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 文件可以解决这个问题吗?如果是这样,我们可以修改我们的代码来生成文件吗? 其他解决方案?谢谢
最佳答案
我想到了一个变通解决方案,只要您的网络基础架构允许即可。
- 重新配置您的客户端应用程序以通过 HTTP(而不是 HTTPS)调用远程服务器
- 放置代理并将您的客户端配置为通过代理发送。
- 配置代理以通过 HTTPS 转发(并输出到远程服务器)
- 使用 Wireshark 捕获客户端和代理之间的请求。
您将同时拥有请求和响应。请求应该是或多或少的 prestine 形式,响应可能会有几个来自代理的额外 header (如 Via:
),但不应妨碍您进行故障排除。
关于c# - 如何使用 Wireshark 解密从 C# HTTP 客户端发送的 HTTPS 消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44034747/