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.