HOWTO · Java
So 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.
Auf dieser Seite
Die Java-SSL/TLS-Debug-Protokollierung kann Details zu Handshake, Zertifikaten und Records offenlegen, wenn eine Verbindung fehlschlägt. Sie kann helfen einzugrenzen, was die JVM tut, aber sie identifiziert möglicherweise keine Probleme außerhalb des TLS-Austauschs.
Warum die Java-SSL-Debug-Protokollierung bei der Fehlerbehebung von Verbindungen hilft
Setzen Sie die Systemeigenschaft javax.net.debug, wenn Sie die JVM starten. Das breite Argument -Djavax.net.debug=ssl aktiviert SSL-bezogene Diagnosen und kann eine erhebliche Ausgabe erzeugen, verwenden Sie es daher für eine gezielte Untersuchung und prüfen Sie die Protokolle, bevor Sie sie weitergeben. Detaillierte Verbindungsprotokolle können sensible Informationen enthalten.
Fügen Sie das Argument zu den JVM-Optionen für Ihre Anwendung hinzu. Aktualisieren Sie bei einem Anwendungsserver dessen Startkonfiguration und starten Sie den Server neu; das Ändern der Option wirkt sich nicht auf eine JVM aus, die bereits läuft.
Die Java-SSL-Debug-Protokollierung mit Debug-Spezifizierern beschränken
Um die Diagnosen einzugrenzen, hängen Sie einen Spezifizierer an den Eigenschaftswert an. Zum Beispiel fordert -Djavax.net.debug=ssl:handshake SSL-Handshake-Diagnosen an. Eine Form mit mehreren Spezifizierern ist -Djavax.net.debug=ssl:handshake,record,session. Dies sind repräsentative Formen: Unterstützte Spezifizierer, Trennzeichen und Details können je nach Java-Laufzeitumgebung variieren. Prüfen Sie die Dokumentation für die von Ihnen ausgeführte JVM, wenn eine Option nicht erkannt wird oder nicht die erwarteten Details liefert.
Die folgenden angegebenen Spezifizierer beschreiben gängige Diagnosebereiche. Verfügbarkeit und Umfang der Details können je nach Laufzeitumgebung unterschiedlich sein; all kann besonders umfangreich sein.
| Debug-Spezifizierer | Diagnosezweck |
|---|---|
all |
Umfassendes Debugging in allen unterstützten Bereichen. |
ssl |
SSL/TLS-bezogenes Debugging. |
record |
Tracing auf Record-Ebene; nützlich bei der Untersuchung von Protokolldaten. |
handshake |
Tracing von Handshake-Nachrichten. |
keygen |
Details zur Schlüsselgenerierung. |
session |
Session-Aktivität. |
defaultctx |
Initialisierung des Standard-SSL-Kontexts. |
sslctx |
Tracing des SSL-Kontexts. |
sessioncache |
Aktivität des Session-Cache. |
keymanager |
Aktivität des Schlüsselmanagers. |
trustmanager |
Aktivität des Trust-Managers. |
data |
Hexadezimale Daten für Handshake-Nachrichten, sofern unterstützt. |
verbose |
Ausführlichere Ausgabe von Handshake-Nachrichten, sofern unterstützt. |
plaintext |
Record-Daten im Klartext, sofern unterstützt. Behandeln Sie diese Ausgabe als sensibel. |
packet |
Rohe Details zu SSL/TLS-Paketen, sofern unterstützt. |
Beginnen Sie mit dem engsten Spezifizierer, der zur Frage passt, und entfernen Sie dann die JVM-Option, wenn die Untersuchung abgeschlossen ist. Diese JVM-Startargumente sind Konfigurationsbeispiele, und es werden keine Ausführungsnachweise für ihr Laufzeitverhalten oder ihre Ausgabe bereitgestellt.