web-dev-qa-db-ja.com

Java sslデバッグロギングの制限

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
77
Steve Renyolds

追加のsslフラグを使用するための形式は、ssl:[flag]です。例:

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

71
A Mack

また、-Djavax.net.debug=ssl(またはそのフィルターでさえ)を使用すると、HTTPSの問題をデバッグするには面倒すぎることがわかりました。

少し手間がかかりますが、私がやりたいのは、安価なサーバーのどこかに mitmproxy をセットアップし、Javaクライアントを構成してプロキシすることです。このようにして、大量のログをくまなく調べることなく、プロキシ上のHTTPS要求/応答フローを快適に検査および再生できます。

興味のある方は、これを実現する方法についてのガイドを書きました。 mitmproxyを使用してJavaでSSLをデバッグする

13
capotej