testssl.sh is a command-line tool that tests TLS/SSL encryption on any server and port, checking for supported ciphers, protocols, and cryptographic weaknesses.
The tool addresses the need to audit TLS/SSL configurations across diverse infrastructure without requiring specialized setup or dependencies. It works by connecting to services on any port and analyzing their cryptographic capabilities, producing clear pass-or-fail assessments of security posture. The approach requires only a bash shell and OpenSSL, making it portable across Linux, macOS, FreeBSD, NetBSD, WSL2, MSYS2/Cygwin, and OpenBSD, with Docker containers also available.
Developers should choose this tool when they need to audit TLS/SSL configurations on any service, not just HTTPS servers. It suits environments where installing additional dependencies is impractical, and where results must remain private and verifiable. The tool's flexibility to test STARTTLS services and non-standard ports distinguishes it from web-focused SSL checkers. Machine-readable output in CSV and JSON formats enables integration into automated security workflows and reporting pipelines.
The project maintains unit tests that verify consistency, JSON validity, and cross-platform compatibility on Linux and macOS. Development activity occurs openly on GitHub with active participation in pull requests and issue tracking, as evidenced by ongoing experimental work on the codebase.