2014-07-02 09:40:02 +02:00
## Intro
2016-07-01 14:58:54 +02:00
[![Build Status ](https://travis-ci.org/drwetter/testssl.sh.svg?branch=master )](https://travis-ci.org/drwetter/testssl.sh)
2015-01-27 23:45:51 +01:00
[![Gitter ](https://badges.gitter.im/Join%20Chat.svg )](https://gitter.im/drwetter/testssl.sh?utm_source=badge& utm_medium=badge& utm_campaign=pr-badge& utm_content=badge)
2016-03-07 13:04:30 +01:00
`testssl.sh` is a free command line tool which checks a server's service on
any port for the support of TLS/SSL ciphers, protocols as well as some
cryptographic flaws.
2014-07-02 09:40:02 +02:00
2016-03-07 13:04:30 +01:00
#### Key features
2015-11-05 08:37:48 +01:00
* Clear output: you can tell easily whether anything is good or bad
2016-07-08 08:04:58 +02:00
* Ease of installation: It works for Linux, Darwin, FreeBSD, NetBSD and
2016-03-07 13:04:30 +01:00
MSYS2/Cygwin out of the box: no need to install or configure something,
no gems, CPAN, pip or the like.
* Flexibility: You can test any SSL/TLS enabled and STARTTLS service, not
only webservers at port 443
* Toolbox: Several command line options help you to run YOUR test and
configure YOUR output
2015-11-05 08:37:48 +01:00
* Reliability: features are tested thoroughly
2016-03-07 13:04:30 +01:00
* Verbosity: If a particular check cannot be performed because of a missing
capability on your client side, you'll get a warning
2015-11-05 08:37:48 +01:00
* Privacy: It's only you who sees the result, not a third party
2016-03-07 13:04:30 +01:00
* Freedom: It's 100% open source. You can look at the code, see what's
going on and you can change it.
2015-11-05 08:37:48 +01:00
* Heck, even the development is open (github)
2016-03-07 13:04:30 +01:00
#### General
2015-11-05 08:37:48 +01:00
2016-10-03 20:48:32 +02:00
Here in the master branch you find the stable version 2.8rc2 of the software, it
superseds 2.6. Version 2.8 is currently being finalized. The 2.9dev branch is the developemnet
-- with new features and maybe some bugs. For the stable version and **a
2016-03-07 13:04:30 +01:00
more thorough description of the command line options** please see
[testssl.sh](https://testssl.sh/ "Go to the site with the stable version
2016-10-03 20:48:32 +02:00
and more documentation") or https://github.com/drwetter/testssl.sh/wiki/Usage-Documentation.
2015-11-05 08:37:48 +01:00
2016-03-07 13:04:30 +01:00
testssl.sh is working on every Linux/BSD distribution out of the box with
some limitations of disabled features from the openssl client -- some
workarounds are done with bash-socket-based checks. It also works on other
unixoid system out of the box, supposed they have `/bin/bash` and standard
tools like sed and awk installed. MacOS X and Windows (using MSYS2 or
cygwin) work too. OpenSSL version >= 1 is a must. OpenSSL version >= 1.0.2
is needed for better LOGJAM checks and to display bit strengths for key
exchanges.
2014-07-02 09:40:02 +02:00
2016-10-03 20:48:32 +02:00
#### [Features in 2.8 stable](Readme.md#stable)
2015-04-16 21:05:23 +02:00
2015-09-22 16:39:09 +02:00
Done so far:
2016-04-04 21:52:57 +02:00
* Trust chain check against certificate stores from Apple (OS), Linux (OS),
Microsoft (OS), Mozilla (Firefox Browser), works for openssl >=1.0.1
2016-03-07 13:04:30 +01:00
* IPv6 (status: 80% working, details see
https://github.com/drwetter/testssl.sh/issues/11
2016-10-03 20:28:44 +02:00
* works now on servers requiring a x509 certificate for authentication
* extensive CN < -- > hostname check
2015-11-03 13:15:19 +01:00
* SSL Session ID check
2016-06-11 09:08:51 +02:00
* Avahi/mDNS based name resolution
2015-12-24 23:13:20 +01:00
* HTTP2/ALPN protocol check
* Logging to a file / dir
2016-10-03 20:28:44 +02:00
* Logging to (flat) JSON + CSV
2016-06-11 09:08:51 +02:00
* Check for multiple server certificates
2016-10-03 20:28:44 +02:00
* Browser cipher simulation: what client will connect with which cipher + protocol
* GOST cipher+certificate improvements
2016-06-11 09:08:51 +02:00
* Assistance for color-blind users
2016-07-08 08:04:58 +02:00
* Even more compatibility improvements for FreeBSD, NetBSD, Gentoo, RH-ish, F5 and Cisco systems
2016-04-04 21:52:57 +02:00
* Considerable speed improvements for each cipher runs (-e/-E)
2016-10-03 20:28:44 +02:00
* More robust SSLv2 + TLS socket interface
* seperate check for curves
2016-02-03 17:56:56 +01:00
* OpenSSL 1.1.0 compliant
2016-10-03 20:28:44 +02:00
* check for DROWN
2016-06-11 09:08:51 +02:00
* Whole number of bugs squashed
2015-09-22 16:39:09 +02:00
2016-03-07 13:04:30 +01:00
Update notification here or @ [twitter ](https://twitter.com/drwetter ).
2016-02-23 09:08:11 +01:00
2016-10-03 20:48:32 +02:00
#### [Features in 2.9dev](Readme.md#devel)
2016-10-03 20:28:44 +02:00
* timeout in OpeenSL connect
* TLS 1.2 protocol check via socket
2016-03-07 13:04:30 +01:00
#### Contributions
2016-02-23 09:08:11 +01:00
2016-03-07 13:04:30 +01:00
Contributions, feedback, bug reports are welcome! For contributions please
note: One patch per feature -- bug fix/improvement. Please test your
changes thouroughly as reliability is important for this project.
2015-05-29 13:37:37 +02:00
2016-03-07 13:04:30 +01:00
There's [coding guideline ](https://github.com/drwetter/testssl.sh/wiki/Coding-Style ).
2014-07-02 09:40:02 +02:00
2016-03-07 13:04:30 +01:00
Please file bug reports @ https://github.com/drwetter/testssl.sh/issues.
2016-02-23 09:08:11 +01:00
2016-03-07 13:04:30 +01:00
#### Documentation
For a start see the
[wiki ](https://github.com/drwetter/testssl.sh/wiki/Usage-Documentation ).
Help is needed here.
2015-04-10 10:13:30 +02:00
2016-03-11 16:42:20 +01:00
#### Bug reports
2016-03-11 16:41:46 +01:00
2016-06-11 09:08:51 +02:00
Please file bugs in the issue tracker. Do not forget to provide detailed information, see https://github.com/drwetter/testssl.sh/wiki/Bug-reporting. (Nobody can read your thoughts
-- yet. And only agencies your screen) ;-)
2016-03-11 16:41:46 +01:00
2015-10-11 11:47:10 +02:00
----
2014-07-02 09:40:02 +02:00
2016-03-08 18:12:34 +01:00
## External/related projects
2015-10-02 03:35:04 +02:00
2016-03-07 13:04:30 +01:00
Please address questions not specifically to the code of testssl.sh to the
respective projects
2015-10-11 11:47:10 +02:00
2016-04-04 21:52:57 +02:00
#### Cool web frontend
2016-03-08 18:12:34 +01:00
* https://github.com/TKCERT/testssl.sh-webfrontend
2016-10-11 12:17:33 +02:00
#### mass scanner w parallel scans and elastic searching the results
* https://github.com/TKCERT/testssl.sh-masscan
2016-04-04 21:52:57 +02:00
#### Ready-to-go docker images are available at:
2015-10-02 03:35:04 +02:00
* https://quay.io/repository/jumanjiman/testssl
2015-10-11 11:47:10 +02:00
* https://hub.docker.com/r/mvance/testssl/
2015-12-24 23:13:20 +01:00
2016-04-04 21:52:57 +02:00
#### Brew package
2015-12-24 23:13:20 +01:00
2016-03-07 13:04:30 +01:00
* see [#233 ](https://github.com/drwetter/testssl.sh/issues/233 ) and
[https://github.com/Homebrew/homebrew ](https://github.com/Homebrew/homebrew )