TLS / HTTPS Troubleshooting Tools

I spend a lot of time professionally working on TLS issues. Here are some of the tools I find useful.

openssl

The default TLS libraries and command line tools for Linux & other systems. You can perform many tasks with this alone, eg to check the certificates on a website:

openssl s_client -connect www.paypal.com:443

OpenSSL cheatsheet

curl

General HTTP / HTTPS + more command line tool. Supplied with Linux distros and windows too now! Offers particularly good support for proxying. To check certificate & headers from a webserver for example:

curl -I -v https://www.google.com

Qualys SSL Server Test

A website that checks whether your https servers are correctly configured. Not much use if the servers are internal though (see SSLyze below).

SSLyze

Python based command-line tool to check TLS sites. Windows binary also available.

testSSL.sh

Bash / openssl (so minimal dependencies) tool to check TLS sites. Useful if you want to quickly check which versions of TLS protocol & which ciphers are offered. One of my favourite tools.

certainly something

A firefox extension that gives you 1-click access to viewing website certificate information – as browsers are increasingly hiding this information away.

jCurl

Java based version of curl, useful to debug any java related TLS issues. Works with custom keystores, client certificates, etc.

mitmproxy

A Man-In-The-Middle proxy that supports TLS decryption. A bit more friendly than Wireshark due to its specialization.

crt.sh

crt.sh lets you view certificate history for a domain.

check-crt-key.sh

check-crt-key.sh is a small script written by myself to check if keys match up to certificates.

wireshark / tcpdump

If you need to dig deep into the TLS handshake etc, tcpdump & its’ companion GUI app wireshark are the tools of choice. A basic tutorial.

peerchain

A quick script written by me to view the certificate chain on a site – useful to ensure you’re including the intermediate for example.