HOWTO · Java

Cómo 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.

En esta página

El registro de depuración de Java SSL/TLS puede revelar detalles del handshake, los certificados y los registros cuando una conexión falla. Puede ayudar a acotar qué está haciendo la JVM, pero es posible que no identifique problemas fuera del intercambio TLS.

Por qué el registro de depuración de Java SSL ayuda a solucionar problemas de conexión

Establezca la propiedad del sistema javax.net.debug al iniciar la JVM. El argumento amplio -Djavax.net.debug=ssl habilita los diagnósticos relacionados con SSL y puede producir una gran cantidad de salida, así que úselo para una investigación focalizada y revise los registros antes de compartirlos. Los registros detallados de conexión pueden contener información sensible.

Agregue el argumento a las opciones de JVM de su aplicación. En el caso de un servidor de aplicaciones, actualice su configuración de inicio y reinicie el servidor; cambiar la opción no afecta a una JVM que ya está en ejecución.

Limitar el registro de depuración de Java SSL con especificadores de depuración

Para acotar los diagnósticos, agregue un especificador al valor de la propiedad. Por ejemplo, -Djavax.net.debug=ssl:handshake solicita diagnósticos del handshake SSL. Una forma con varios especificadores es -Djavax.net.debug=ssl:handshake,record,session. Estas son formas representativas: los especificadores, separadores y detalles admitidos pueden variar entre los entornos de ejecución de Java. Consulte la documentación de la JVM que ejecuta si una opción no se reconoce o no produce el nivel de detalle esperado.

Los siguientes especificadores proporcionados describen áreas de diagnóstico comunes. La disponibilidad y la cantidad de detalle pueden diferir según el entorno de ejecución; all puede ser especialmente ruidoso.

Especificador de depuración Propósito de diagnóstico
all Depuración amplia en todas las áreas admitidas.
ssl Depuración relacionada con SSL/TLS.
record Rastreo a nivel de registro; útil al investigar datos del protocolo.
handshake Rastreo de mensajes de handshake.
keygen Detalles de generación de claves.
session Actividad de la sesión.
defaultctx Inicialización del contexto SSL predeterminado.
sslctx Rastreo del contexto SSL.
sessioncache Actividad de la caché de sesiones.
keymanager Actividad del administrador de claves.
trustmanager Actividad del administrador de confianza.
data Datos hexadecimales de los mensajes de handshake, cuando se admite.
verbose Salida de mensajes de handshake más detallada, cuando se admite.
plaintext Datos de registro en texto plano, cuando se admite. Trate esta salida como sensible.
packet Detalles de paquetes SSL/TLS sin procesar, cuando se admite.

Comience con el especificador más acotado que se ajuste a la pregunta y luego elimine la opción de JVM cuando la investigación esté completa. Estos argumentos de inicio de la JVM son ejemplos de configuración, y no se proporciona evidencia de ejecución sobre su comportamiento en tiempo de ejecución ni su salida.