1

环境:NetBeans 7.0.1、GlassFish 3.1

我想嗅探 WCF (.NET Framework 4) 客户端和 Metro (2.1.1) Web 服务之间的通信,然后检查消息以确保一切都是我想要的。Web 服务使用传输安全 (SSL)。我已经知道Fiddler,但我没有成功使用它;只有 HTTPS 浏览器流量可见。有没有办法设置 Fiddler 来捕获我的服务之间的流量?还有其他方法吗?

更新

我尝试在不同的机器上启动客户端和服务器,然后使用 Fiddler,但没有成功。我尝试使用 Wireshark 捕获流量,但在 localhost 上都没有成功运行。如果我在不同的机器上尝试它们,我只能看到服务之间的 TCP 数据交换。

在 localhost + Wireshark 上,接口旁边的数据包计数器保持不变,但是我多次调用该服务。

更新2

尝试在选项中手动设置 NetBeans 代理,并以编程方式,但没有成功:

System.setProperty("http.proxyHost", "localhost"); 
System.setProperty("http.proxyPort", "8888"); 
System.setProperty("https.proxyHost", "localhost"); 
System.setProperty("https.proxyPort", "8888"); 

尝试使用这些 JVM 选项启动 GlassFish,但没有 :( :

<jvm-options>-Dhttp.proxyHost=localhost</jvm-options>
<jvm-options>-Dhttp.proxyPort=8888</jvm-options>
<jvm-options>-Dhttps.proxyHost=localhost</jvm-options>
<jvm-options>-Dhttps.proxyPort=8888</jvm-options>
4

6 回答 6

1

作为 Fiddler 的替代方案,如果您控制 WCF 客户端,则可以启用WCF 消息日志,它将所有未加密的 SOAP 消息保存到跟踪日志中。可以在 app.config 文件中启用日志记录,因此您甚至不必重新构建应用程序来启用或禁用日志记录。

于 2011-09-12T17:55:08.603 回答
1

你可以设置 Metro 来转储 SOAP 消息,信息在这里。就个人而言,我使用查尔斯代理来观看肥皂交易。您使用“update2”中的系统属性配置 java 代理,效果很好。

于 2011-09-19T01:15:39.353 回答
1

使用http://portswigger.net/burp/ 它有一个代理。代理可用于查看 http 流量。它还可以通过动态生成自签名证书来显示 SSL 流量。您需要将生成的证书导入到 jax-ws 客户端的 java 密钥库中。确保您已启用“支持非代理感知客户端的隐形代理”

于 2011-09-24T10:35:40.990 回答
0

我经常使用 commview 来监控本地环回适配器上的流量。当您的客户端和服务都在同一台计算机上时,允许捕获流量的少数工具之一。

您可以在http://www.tamos.com/products/commview/下载一条线索,看看它是否适合您。

于 2011-09-19T21:50:41.840 回答
0

可能WebScarab是您所需要的。有许多用于嗅探 ssl 流量的手册,例如.

于 2011-09-24T09:52:48.677 回答
0

我成功尝试过的一种方法是确保使用 SSLv2(而不是 SSLv3),然后按照 Wikishark Wiki上SSL 页面上的说明使用Wireshark,但在Citrix 支持页面“如何解密 SSL 和 TLS上更好”使用 Wireshark 的流量”。这是通过向 Wireshark 提供服务器 SSL 证书的私钥来实现的,以便它可以解密对话。

要在您的场景中强制使用 SSLv2,在您的服务器端 JVM 上设置似乎就足够了-Dhttps.protocols=SSLv2Hello,但我一起用谷歌搜索了它。(参见Java 1.4.2 Troubleshooting pagehttps.protocols上的“Why do I get a javax.net.ssl.SSLException”问题,以及JavaTM Secure Socket Extension (JSSE) Reference Guide中的部分。)我没有我自己没有完成这部分,我似乎无法找到关于这一点的明确文档。

(PS 在我的情况下,当我解密 .NET 到 .NET SSL 流量时,我认为是切换回 SSLv2 使得 Wireshark 可以读取流量。但是,这篇博文表明我正在同时切换从 Diffie-Hellman 密码到非 DH 密码的时间。)

于 2011-09-26T05:00:10.647 回答