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

SOAP メッセージをダンプするように Metro をセットアップできます。情報はこちら. 個人的には、charles プロキシを使用して石鹸交換を監視しています。「update2」のシステムプロパティを使用してJavaプロキシを構成すると、非常にうまく機能します。

于 2011-09-19T01:15:39.353 に答える
1

Fiddler の代わりに、WCF クライアントを制御する場合は、WCF Message Loggingを有効にすることができます。これにより、暗号化されていないすべての SOAP メッセージがトレース ログに保存されます。ロギングは app.config ファイルで有効にできるため、ロギングを有効または無効にするためにアプリを再構築する必要さえありません。

于 2011-09-12T17:55:08.603 に答える
1

http://portswigger.net/burp/を使用 してください。プロキシがあります。プロキシは、http トラフィックの表示に使用できます。また、その場で自己署名証明書を生成することにより、SSL トラフィックを表示することもできます。生成された証明書を jax-ws クライアントの Java キー ストアにインポートする必要があります。「非プロキシ対応クライアントの非表示プロキシをサポートする」が有効になっていることを確認してください

于 2011-09-24T10:35:40.990 に答える
0

私が成功した 1 つのアプローチは、(SSLv3 ではなく) SSLv2 が使用されていることを確認してから、Wikishark Wiki の SSL ページで説明されているようにWiresharkを使用することですが、 Citrix サポートページの「SSL と TLS を復号化する方法」のほうが適切です。 Wireshark を使用したトラフィック」 . これは、Wireshark にサーバーの SSL 証明書の秘密鍵を与えることで機能し、会話を復号化できるようになります。

あなたのシナリオで SSLv2 を強制するには-Dhttps.protocols=SSLv2Hello、サーバー側の JVM で設定するだけで十分だと思われますが、私はそれをまとめてググりました。(たとえば、Java 1.4.2 トラブルシューティング ページの「javax.net.ssl.SSLException が発生する理由」の質問、およびJavaTM Secure Socket Extension (JSSE) リファレンス ガイドhttps.protocolsの部分を参照してください。)この部分を自分で行ったわけではありません。この点に関する明確なドキュメントが見つからないようです。

(PS 私の場合、.NET から .NET への SSL トラフィックを復号化していたとき、Wireshark でトラフィックを読み取れるようにしたのは SSLv2 への切り替えだと思いました。しかし、このブログ投稿は、私が同時に切り替えていたことを示唆しています。 Diffie-Hellman 暗号から非 DH 暗号への時間。)

于 2011-09-26T05:00:10.647 に答える
0

私は頻繁に commview を使用して、ローカル ループバック アダプター上のトラフィックを監視しています。クライアントとサービスの両方が同じコンピューター上にある場合にトラフィックをキャプチャできる数少ないツールの 1 つです。

http://www.tamos.com/products/commview/でトレイルをダウンロードして、それが機能するかどうかを確認できます。

于 2011-09-19T21:50:41.840 に答える
0

WebScarabが必要なのかもしれませんたとえば、ssl トラフィックをスニッフィングするためのマニュアルは多数あります

于 2011-09-24T09:52:48.677 に答える