Utility to view stream message between server and client
tlslookieloo is a utility to help troubleshoot network-related issues between a server and client. A client will connect to tlslookieloo, who in turn, will connect to the target server. tlslookieloo will then store/display the unencrypted message between the two.
These are all minimum version
- C++ 17 compatible compiler
- cmake 3.13
- OpenSSL 1.1.1
- yaml-cpp 0.6
The following are included as submodules of this project:
- googletest
- log4cplus
Make sure to process the git submodule with --recurse accordingly.
This project has been tested on Debian 10 and macOS Catalina. Below are the steps used to compile on Debian 10:
- Install the following software packages:
- libssl-dev
- cmake
- libyaml-cpp
- git submodule update --recursive --init
- mkdir build
- cd build
- cmake ..
- cmake --build .
- ctest (make sure all passes)
Instructions for building on macOS is in the Building on macOS wiki page.
- cd to build directory from the previous section.
- Generate a self-signed TLS certificate
openssl req -new -newkey rsa:4096 -x509 -sha256 -days 365 -nodes -out app1.crt -keyout app1.key
- Start tlslookieloo
./src/tlslookieloo -t../samples/targets.yaml
- Make the necessary system changes to resolve "www.example.com" to the IP of the machine you're running tlslookieloo on.
- In a browser go to https://www.example.com:9988.
- You should see a certificate warning if you're browser is connected to your tlslookieloo instance. Allow accordingly.
- The "Example" page should load
- Messages between your browser and www.example.com's server are recorded in app1.msgs
See the User Guide for more information.
A docker containers available on Docker Hub. Here's a sample invocation:
- Create a directory $HOME/docker-files to use as a bind mount.
- Place the certificate-key pair from "How to run" above in $HOME/docker-files
- Copy targets.yaml and logger.properties from tlslookieloo/samples directory into the directory from the previou step.
- docker run -d -p 9988:9988 --name testrun --mount="type=bind,source=$HOME/docker-files,dst=/data" tlslookieloo:edge -t /data/docker.yaml -l /data/dockerlog.prop
- Open your browser and go to http://localhost:9988
- If all went well, the docker-files folder should now contain the app1.msgs and tlslookieloo.log files.