Limitar el registro de depuración de Java SSL
Hoy aprenderemos sobre la depuración de Java SSL, su importancia, varias utilidades y cómo usar una o varias en un solo comando.
Depuración de Java SSL y su importancia
Manejar SSL (Secure Socket Layer) en aplicaciones web Java no es divertido, particularmente cuando obtiene una página fea que dice “No se puede mostrar la página” en su navegador sin solucionar problemas o depurar registros.
Estas situaciones aumentan la importancia de SSL que podemos habilitar para depurar fácilmente nuestras aplicaciones y comenzar a ver registros detallados. Estos registros nos guiarán (a los desarrolladores) sobre este error.
Hay varias utilidades de depuración que podemos usar. El siguiente es el que permite habilitar todos los registros de depuración de SSL en nuestro servidor de aplicaciones JVM (Java Virtual Machine).
No olvide reiniciar su servidor de aplicaciones después de agregar el siguiente parámetro de línea de comando JVM.
-Djavax.net.debug=ssl
El problema es que el comando anterior activará toda la depuración SSL que puede no ser necesaria en algunos escenarios.
Entonces, ¿cómo podemos limitar el registro de depuración de Java SSL? Aprendamos a continuación.
Limitar el registro de depuración de Java SSL
El uso del comando -Djavax.net.debug=ssl
registrará una gran cantidad de registros y detalles para cada evento SSL en un servidor. ¿Cómo podemos limitarlo según los requisitos de nuestro proyecto?
Para resolverlo, necesitamos especificar un especificador de depuración (también conocido como indicador) separado por dos puntos (:
) para lo cual necesitamos SSL para depurar el registro. Por ejemplo, podemos registrar sobre apretón de manos
de la siguiente manera.
-Djavax.net.debug=ssl:handshake
Recuerda que debemos especificar el valor de la propiedad javax.net.debug
, ya sea ssl
o all
, seguido de un especificador de depuración (opcional).
También podemos usar múltiples especificadores de depuración y no es necesario tener un separador en estas opciones (especificadores de depuración), aunque tener un separador (:
o ,
) aumentará la legibilidad. Vea el siguiente ejemplo para entender claramente.
-Djavax.net.debug=ssl:handshake, record, session
El comando anterior también puede usar dos puntos (:
) como separador entre varios especificadores de depuración. Recuerda, no importa qué separador usemos; el orden de los especificadores de depuración tampoco es importante.
Las siguientes son algunas opciones que pueden resultarle útiles.
Especificador de depuración (opción) | Descripción |
---|---|
all |
Enciende toda la depuración. |
ssl |
Activa toda la depuración ssl . |
record |
Se utiliza con ssl y permite el rastreo por registro. |
handshake |
Se usa con ssl e imprime cada mensaje de apretón de manos . |
keygen |
Se utiliza con ssl e imprime datos de generación de claves. |
session |
Se usa con ssl e imprime la actividad de sesión . |
defaultctx |
Podemos usarlo con ssl e imprimir la inicialización ssl predeterminada. |
sslctx |
Se utiliza con ssl y seguimiento de contexto de impresión ssl . |
sessioncache |
Se utiliza con ssl e imprime el seguimiento de caché de sesión . |
keymanager |
Se utiliza con ssl e imprime el seguimiento del administrador de claves. |
trustmanager |
Imprime el seguimiento del administrador de confianza y se usa con ssl . |
data |
Es un volcado hexadecimal de cada mensaje de apretón de manos que podemos usar para ampliar la depuración de apretón de manos . |
verbose |
Se utiliza para la impresión de mensajes detallados apretón de manos y para ampliar la depuración de apretón de manos . |
plaintext |
Volcado hexadecimal de registro texto plano , utilizado para ampliar la depuración de registro . |
packet |
Imprime paquetes SSL /TLS sin procesar, también utilizados para ampliar la depuración de registro . |
Puede utilizar cualquiera de ellos según sus necesidades y requisitos del proyecto.