Java sslデバッグログの制限


94

JVMフラグの使用

-Djavax.net.debug=ssl

サーバー上のすべてのSSLイベントの詳細である膨大な量のログを生成しています。とにかくエラーをログに記録するだけですか?あるいは、これらのフラグのより良いサブセットがあり、よりきちんとした出力を生成します

all            turn on all debugging
ssl            turn on ssl debugging

The following can be used with ssl:

    record       enable per-record tracing
    handshake    print each handshake message
    keygen       print key generation data
    session      print session activity
    defaultctx   print default SSL initialization
    sslctx       print SSLContext tracing
    sessioncache print session cache tracing
    keymanager   print key manager tracing
    trustmanager print trust manager tracing
    pluggability print pluggability tracing

    handshake debugging can be widened with:
    data         hex dump of each handshake message
    verbose      verbose handshake message printing

    record debugging can be widened with:
    plaintext    hex dump of record plaintext
    packet       print raw SSL/TLS packets

3
例外として無料でエラーが発生すると思います。特別なアクションは必要ありません。
jww

これは特にデバッグに使用されます。したがって、膨大な量のログ。
javajavajava 2015年

1
に設定すると""、いくつかの警告しか表示されないようです。
NateS

回答:


85

追加のsslフラグを使用するための形式はssl:[flag]、たとえば次のとおりです。

-Djavax.net.debug=ssl:recordまたは-Djavax.net.debug=ssl:handshake


2
これは非常に賛成された答えですが、それは本当に人々のために機能しますか?それは私には思えない。これらのオプションが実際には機能しないというバグのエントリもあります。
e's

1
@はいはい、それは私のために働いた。多分それを正しく設定していないかもしれません、そうなら、私たちはあなたを助けることができるように
間違い

@Alfabravoは、バグエントリが無効であり、これらが期待どおりに機能していると言いますか?
e's

1
まあ、それは2014年、jdk7、openjdkからです。また、誰かがここでデバッグロギングが改善されたとコメントしいるため、そこにあります
Alfabravo

14

また、-Djavax.net.debug=sslHTTPSの問題をデバッグするには、使用する(またはフィルターを使用する)のが面倒すぎます。

少し複雑ですが、安価なサーバーでmitmproxyをどこかにセットアップし、それを介してプロキシするようにJavaクライアントを構成します。このようにして、一連のログをくまなく調べることなく、プロキシ上でHTTPS要求/応答フローを快適に検査および再生できます。

あなたが興味を持っているなら、私はこれを行う方法に関するガイドを書いています:mitmproxyを使用したJavaでのSSLのデバッグ


あなたのアプローチは、TLSセッション内で発生しているトラフィックをデバッグし、それに関するすべての詳細を持ち、それを変更できるのに役立つと思いますが、TLSセッション自体のレベルで発生している問題を調査する場合、それほど意味がありません。プロキシは変更し、そのレベルで最初に何が起こっているかを隠します。
jmd
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.