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
追加のssl
フラグを使用するための形式は、ssl:[flag]
です。例:
-Djavax.net.debug=ssl:record
または-Djavax.net.debug=ssl:handshake
。
また、-Djavax.net.debug=ssl
(またはそのフィルターでさえ)を使用すると、HTTPSの問題をデバッグするには面倒すぎることがわかりました。
少し手間がかかりますが、私がやりたいのは、安価なサーバーのどこかに mitmproxy をセットアップし、Javaクライアントを構成してプロキシすることです。このようにして、大量のログをくまなく調べることなく、プロキシ上のHTTPS要求/応答フローを快適に検査および再生できます。
興味のある方は、これを実現する方法についてのガイドを書きました。 mitmproxyを使用してJavaでSSLをデバッグする