2014-07-02 09:40:02 +02:00
|
|
|
|
|
|
|
## Intro
|
|
|
|
|
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-03-07 13:04:30 +01:00
|
|
|
* Ease of installation: It works for Linux, Darwin, FreeBSD and
|
|
|
|
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-03-07 13:04:30 +01:00
|
|
|
Here in the master branch you find the development version of the software
|
|
|
|
-- with new features and maybe some bugs. For the stable version and **a
|
|
|
|
more thorough description of the command line options** please see
|
|
|
|
[testssl.sh](https://testssl.sh/ "Go to the site with the stable version
|
|
|
|
and more 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-03-07 13:04:30 +01:00
|
|
|
#### Current Development
|
2015-01-16 17:16:22 +01:00
|
|
|
|
2016-03-07 13:04:30 +01:00
|
|
|
Planned features in the release 2.7dev/2.8 are:
|
2015-05-25 21:41:45 +02:00
|
|
|
|
2015-09-17 15:33:41 +02:00
|
|
|
https://github.com/drwetter/testssl.sh/milestones/2.7dev%20%282.8%29
|
2015-04-16 21:05:23 +02:00
|
|
|
|
2015-09-22 16:39:09 +02:00
|
|
|
Done so far:
|
|
|
|
|
2016-03-07 13:04:30 +01:00
|
|
|
* Trust chain check against certificate stores from java, linux (system),
|
|
|
|
microsoft, mozilla (works for openssl >=1.0.2)
|
|
|
|
* IPv6 (status: 80% working, details see
|
|
|
|
https://github.com/drwetter/testssl.sh/issues/11
|
2015-12-24 23:13:20 +01:00
|
|
|
* works on servers requiring a x509 certificate for authentication
|
2015-11-03 13:15:19 +01:00
|
|
|
* SSL Session ID check
|
|
|
|
* avahi/mDNS based name resolution
|
2015-12-24 23:13:20 +01:00
|
|
|
* HTTP2/ALPN protocol check
|
|
|
|
* Logging to a file / dir
|
2016-01-23 21:28:37 +01:00
|
|
|
* Logging to JSON + CSV
|
2016-01-31 10:55:21 +01:00
|
|
|
* check for multiple server certificates
|
|
|
|
* browser cipher simulation
|
2016-02-01 22:42:49 +01:00
|
|
|
* assistance for color-blind users
|
2015-11-03 23:30:52 +01:00
|
|
|
* Even more compatibilty improvements for FreeBSD, RH-ish and F5 systems
|
2016-02-03 17:56:56 +01:00
|
|
|
* OpenSSL 1.1.0 compliant
|
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-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
|
|
|
|
2015-10-11 11:47:10 +02:00
|
|
|
----
|
2014-07-02 09:40:02 +02:00
|
|
|
|
2015-10-02 03:35:04 +02:00
|
|
|
## External contributions
|
|
|
|
|
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
|
|
|
|
2015-12-24 23:13:20 +01:00
|
|
|
#### 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
|
|
|
|
|
|
|
#### brew package
|
|
|
|
|
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)
|