Java SSL デバッグ ロギングを制限する

Mehvish Ashiq 2023年6月20日
  1. Java SSL デバッグとその重要性
  2. Java SSL デバッグ ロギングを制限する
Java SSL デバッグ ロギングを制限する

今日は、Java SSL デバッグ、その重要性、さまざまなユーティリティ、および 1つのコマンドで 1つまたは複数を使用する方法について学習します。

Java SSL デバッグとその重要性

Java Web アプリケーションで SSL (Secure Socket Layer) を処理するのは楽しいことではありません。特に、トラブルシューティングやログのデバッグを行わないと、ブラウザにページを表示できませんという醜いページが表示される場合はなおさらです。

これらの状況では、アプリケーションを簡単に デバッグ可能 にし、詳細なログを確認できる SSL の重要性が高まります。 これらのログは、このエラーについて私たち (開発者) をガイドします。

使用できるさまざまなデバッグ ユーティリティがあります。 以下は、アプリケーション サーバー JVM (Java 仮想マシン) ですべての SSL デバッグ ログを有効にするものです。

次の JVM コマンド ライン パラメータを追加した後、アプリケーション サーバーを再起動することを忘れないでください。

-Djavax.net.debug=ssl

問題は、上記のコマンドがすべての SSL デバッグを有効にすることです。これは、一部のシナリオでは必要ない場合があります。

では、Java SSL デバッグ ロギングを制限するにはどうすればよいでしょうか。 以下でそれを学びましょう。

Java SSL デバッグ ロギングを制限する

-Djavax.net.debug=ssl コマンドを使用すると、サーバー上の各 SSL イベントの膨大な量のログと詳細が記録されます。 プロジェクトの要件に従って、どのように制限できますか?

これを解決するには、ロギングをデバッグするために SSL が必要なデバッグ指定子 (フラグとも呼ばれます) をコロン (:) で区切って指定する必要があります。 たとえば、次のように handshake についてログに記録できます。

-Djavax.net.debug=ssl:handshake

ssl または all のいずれであっても、javax.net.debug プロパティ値を指定し、その後にデバッグ指定子 (オプション) を指定する必要があることに注意してください。

複数のデバッグ指定子を使用することもでき、これらのオプション (デバッグ指定子) に区切り記号を含める必要はありませんが、区切り記号 (: または ,) を使用すると読みやすくなります。 明確に理解するには、次の例を参照してください。

-Djavax.net.debug=ssl:handshake, record, session

上記のコマンドでは、コロン (:) を複数のデバッグ指定子の間のセパレータとして使用することもできます。 どのセパレータを使用しても問題ないことを覚えておいてください。 デバッグ指定子の順序も重要ではありません。

以下は、知っておくと便利な オプション です。

デバッグ指定子 (オプション) 説明
all すべてのデバッグをオンにします。
ssl すべての ssl デバッグをオンにします。
record ssl とともに使用され、レコードごとのトレースを有効にします。
handshake ssl とともに使用され、すべての handshake メッセージを出力します。
keygen ssl とともに使用され、キー生成データを出力します。
session ssl とともに使用され、session アクティビティを出力します。
defaultctx ssl で使用して、デフォルトの ssl 初期化を出力できます。
sslctx ssl および print ssl コンテキスト トレースで使用されます。
sessioncache ssl とともに使用され、session キャッシュ トレースを出力します。
keymanager ssl とともに使用され、キー マネージャーのトレースを出力します。
trustmanager これは、トラスト マネージャーのトレースを出力し、ssl と共に使用されます。
data これは、handshake デバッグを拡張するために使用できるすべての handshake メッセージの 16 進ダンプです。
verbose これは、verbose handshake メッセージの出力と、handshake デバッグの幅を広げるために使用されます。
plaintext record のデバッグを拡張するために使用される、レコード plaintext の 16 進ダンプ。
packet 生の SSL/TLS パケットを出力し、record デバッグを拡張するためにも使用されます。

ニーズやプロジェクトの要件に応じて、それらのいずれかを使用できます。

著者: Mehvish Ashiq
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

関連記事 - Java SSL