Giter VIP home page Giter VIP logo

jsslkeylog's Introduction

jSSLKeyLog
==========


Introduction
~~~~~~~~~~~~

jSSLKeyLog is a Java Agent Library that logs SSL session keys of connections 
created by a Java application to a log file understood by Wireshark (see 
https://developer.mozilla.org/en-US/docs/NSS_Key_Log_Format), so that "Follow
SSL stream" can be used to debug SSL connection issues as if the connection
was not encrypted. It works with both Java server and client software.


System requirements
~~~~~~~~~~~~~~~~~~~

This program requires Java 1.7 or higher. Download it from www.java.com.
In case you want to use it with Java 1.5 or 1.6, use version 1.1 of this
program instead. 

The agent library was tested with Java 1.7 to 19; as it accesses internal
API directly, it will likely not work in more recent versions without updating.


Usage
~~~~~

- First download jSSLKeyLog and extract it.

- Locate the command line used to start the Java program (usually hidden in
  some script or batch file) you want to monitor, it will usually look like

  java ... -jar file.jar ...
  or
  java ... some.class.Name ...
  
- Now add an additional parameter directly after the java command name, 
  which is 
  
  -javaagent:jSSLKeyLog.jar=/path/to/your_logfile.log
  
  so that the complete command looks like this:
  
  java -javaagent:jSSLKeyLog.jar=/path/to/your_logfile.log ... -jar file.jar

- You can give an absolute or relative path to jSSLKeyLog.jar and to your
  logfile.

- If you do not want a message printed to the console, add a :quiet option
  after the file name, like this (use ; instead of : on Windows):

  -javaagent:jSSLKeyLog.jar=logfile.log:quiet

  If you prefer the message to appear on stderr instead of stdout, add
  the :stderr option instead.

- If you use a double == between name of the Jar file and the name of
  your log file, extra verbose comments (containing timestamps and
  local/remote host/ip) will be written before the individual entries.

  You can also specify the option :detailed in the same manner as :quiet
  to activate the extra verbose comments.

- The logfile will be written while the program is running. Now just point
  Wireshark to that logfile and happy SSL decoding!
  
- Note that for decoding ECDSA ciphers, at least Wireshark 1.11.3 (as of
  now, a development version, but probably already stable when you are
  reading this) is required.

- If you are using an IDE such as VSCodium, put the parameter in a string
  under the "vmargs" property in the launcher specified under the setting
  "java.test.config", e.g.:

      "java.test.config": [{
          "vmargs": [
              "-javaagent:/path/to/target/jSSLKeyLog-shaded.jar=logfile"
          ]
      }]

  and you can then monitor the traffic generated by JUnit test cases while
  they are being debugged.


License
~~~~~~~

Copyright (c) 2012, 2014, 2017, 2018, 2020, 2022 Michael Schierl

jSSLKeyLog is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version. See license.txt.


Contact me
~~~~~~~~~~

Please send bug reports and suggestions to <[email protected]>.


ChangeLog
~~~~~~~~~

+++ 2020-10-24 Released version 1.3 +++

- Added support for Java 11 - 15
- Added TLS 1.3 support (Java 11 / Java 8u261)

+++ 2017-09-28 Released version 1.2 +++

- Added support for Java 9

+++ 2014-04-23 Released version 1.1 +++

- Added verbose logging mode
- Added support for Java 8

+++ 2012-10-03 Released version 1.0 +++

- First public release

jsslkeylog's People

Contributors

schierlm avatar prefork avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.