Beschränken Sie die Java-SSL-Debug-Protokollierung

Mehvish Ashiq 20 Juni 2023
  1. Java SSL Debug und seine Bedeutung
  2. Beschränken Sie die Java-SSL-Debug-Protokollierung
Beschränken Sie die Java-SSL-Debug-Protokollierung

Heute werden wir etwas über das Debuggen von Java SSL, seine Bedeutung, verschiedene Dienstprogramme und die Verwendung eines oder mehrerer in einem einzigen Befehl lernen.

Java SSL Debug und seine Bedeutung

Der Umgang mit SSL (Secure Socket Layer) in Java-Webanwendungen macht keinen Spaß, insbesondere wenn Sie in Ihrem Browser eine hässliche Seite mit der Meldung Seite kann nicht angezeigt werden erhalten, ohne Fehler zu beheben oder Protokolle zu debuggen.

Diese Situationen erhöhen die Bedeutung von SSL, das wir unsere Anwendungen leicht debuggen können und beginnen, ausführliche Protokolle zu sehen. Diese Protokolle werden uns (die Entwickler) über diesen Fehler informieren.

Es gibt verschiedene Debug-Dienstprogramme, die wir verwenden können. Im Folgenden werden alle SSL-Debugging-Protokolle in unserer Anwendungsserver-JVM (Java Virtual Machine) aktiviert.

Vergessen Sie nicht, Ihren Anwendungsserver neu zu starten, nachdem Sie den folgenden JVM-Befehlszeilenparameter hinzugefügt haben.

-Djavax.net.debug=ssl

Das Problem besteht darin, dass der obige Befehl das gesamte SSL-Debugging aktiviert, das in einigen Szenarien möglicherweise nicht erforderlich ist.

Wie können wir also die Java-SSL-Debug-Protokollierung einschränken? Lass es uns unten lernen.

Beschränken Sie die Java-SSL-Debug-Protokollierung

Die Verwendung des Befehls -Djavax.net.debug=ssl protokolliert eine enorme Menge an Protokollen und Details für jedes SSL-Ereignis auf einem Server. Wie können wir es gemäß unseren Projektanforderungen begrenzen?

Um dies zu beheben, müssen wir einen Debug-Bezeichner (auch als Flag bezeichnet) angeben, der durch einen Doppelpunkt (:) getrennt ist, für den wir SSL zum Debuggen der Protokollierung benötigen. Zum Beispiel können wir wie folgt über handshake protokollieren.

-Djavax.net.debug=ssl:handshake

Denken Sie daran, dass wir den Eigenschaftswert javax.net.debug angeben müssen, egal ob ssl oder all, gefolgt von einem Debug-Bezeichner (optional).

Wir können auch mehrere Debug-Spezifizierer verwenden und müssen in diesen Optionen (Debug-Spezifizierer) kein Trennzeichen haben, obwohl ein Trennzeichen (: oder ,) die Lesbarkeit erhöht. Sehen Sie sich das folgende Beispiel an, um es klar zu verstehen.

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

Der obige Befehl kann auch einen Doppelpunkt (:) als Trennzeichen zwischen mehreren Debug-Bezeichnern verwenden. Denken Sie daran, es spielt keine Rolle, welches Trennzeichen wir verwenden; Die Reihenfolge der Debug-Spezifizierer ist ebenfalls nicht wichtig.

Im Folgenden sind einige Optionen aufgeführt, die für Sie nützlich sein können.

Debug-Spezifizierer (Option) Beschreibung
all Es schaltet das gesamte Debugging ein.
ssl Es schaltet das gesamte ssl-Debugging ein.
record Es wird mit ssl verwendet und ermöglicht die Verfolgung pro Datensatz.
handshake Wird mit ssl verwendet und druckt jede handshake-Nachricht.
keygen Es wird mit ssl verwendet und gibt Schlüsselgenerierungsdaten aus.
session Es wird mit ssl verwendet und gibt die session-Aktivität aus.
defaultctx Wir können es mit ssl verwenden und die ssl-Standardinitialisierung drucken.
sslctx Verwendet mit ssl und print ssl Kontextverfolgung.
sessioncache Es wird mit ssl verwendet und gibt session-Cache-Tracing aus.
keymanager Es wird mit ssl verwendet und gibt die Ablaufverfolgung des Schlüsselmanagers aus.
trustmanager Es druckt Trust Manager Tracing und wird mit ssl verwendet.
data Es ist ein Hex-Dump jeder handshake-Nachricht, die wir verwenden können, um das handshake-Debugging zu erweitern.
verbose Es wird zum Ausdrucken von verbose handshake-Meldungen und zur Erweiterung des handshake-Debugging verwendet.
plaintext Hexadezimaler Dump des Datensatzes Klartext, der verwendet wird, um das Datensatz-Debugging zu erweitern.
packet Es druckt rohe SSL/TLS-Pakete, die auch verwendet werden, um das record-Debugging zu erweitern.

Sie können jede davon gemäß Ihren Bedürfnissen und Projektanforderungen verwenden.

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

Verwandter Artikel - Java SSL