testssl.sh
v3.2.4 open-sourceThe section your link pointed to isn't on testssl.sh's page any more, so we've brought you to the top.
Testing TLS/SSL encryption anywhere on any port
testssl.sh --mtls /path/to/client-cert-and-key.pem https://internal-api.example.com:8443 testssl.sh --reqheader 'Proxy-Authorization: Basic dGVzdHNzbDpydWxlcw==' --reqheader 'ClientID: 0xDEADBEAF' https://internal.example.com testssl.sh --proxy 10.0.0.1:3128 --ip=proxy --nodns=min --file nmap-results.gnmap ROBOT_TIMEOUT=30 ./testssl.sh <target> testssl.sh --android15 example.com ./testssl.sh --user-agent "Mozilla/5.0" <target> ./testssl.sh --reqheader "Authorization: Bearer token123" <target> ./testssl.sh --add-ca /path/to/certs/ <target> ./testssl.sh --phone-out <target> ./testssl.sh --connect-timeout 10 <target> ./testssl.sh -R <target> testssl.sh -e --severity HIGH --format json-nonflat example.com testssl.sh -f html example.com > report.html
Summary
testssl.sh is a free, open-source command-line tool, written in bash, that checks a server's TLS/SSL configuration on any port for supported protocols, cipher suites, and known cryptographic flaws. You run it directly against a target host from Linux, macOS, FreeBSD, NetBSD or WSLWSLWindows Subsystem for Linux, a Microsoft-built compatibility layer that lets a Linux environment run directly on Windows without a virtual machine, giving cyber tools access to Linux binaries, filesystems, and syscalls on a Windows host., with no installation beyond the script itself, and it prints a clear pass/fail-style readout rather than a raw dump of handshake data. That makes it a fit for application developers, sysadmins and security auditors who need to verify a server's TLS posture before or after deployment, rather than for teams scanning web application logic. First committed in 2014, it remains active, with 172 contributors, 281 commits in the past year, and a release only 71 days ago.
Testing TLS/SSL encryption anywhere on any port
How testssl.sh helps
Which protocols and cipher suites will a server still accept from an outdated client?
negotiates handshakes across every SSL and TLS version and cipher combination it knows and reports each one as offered or refused, so weak protocols left enabled for compatibility show up explicitly
Is a server exposed to any of the known TLS implementation flaws?
runs targeted checks for named vulnerabilities such as padding oracle and renegotiation issues and marks each one vulnerable or not, rather than leaving that judgment to a raw handshake trace
Is this certificate actually trustworthy and set up correctly?
checks the chain, expiry, hostname match and key strength presented in the handshake and flags mismatches or weak keys directly in the readout
Did a configuration change on this server just weaken its TLS posture?
run before and after a deployment and diff the pass/fail readouts to see which checks flipped
Which of several servers in my fleet have the worst TLS configuration?
produces the same pass/fail-style readout for each host so results can be compared side by side rather than re-reading raw handshake dumps
Can I get a pass/fail verdict without waiting for every possible check to run?
scales back to only the checks needed to produce an overall rating, trading completeness for a faster answer on the same target
Languages
Command line
No command matches.
| option | found in | since | description |
|---|
Values are placeholders taken from each option’s declared default. Nothing is executed here — the output shown is a recording of a run that already happened.
Score card
-
Shipping velocity releases a month, last 12 months
-
Documentation quality release-notes rubric, 0–100
-
Breaking-change discipline how rarely a release breaks users, and notice given
-
Maintenance risk quiet time against its own cadence, maintainers
-
Innovation & surface new capabilities, API and MCP surface
- Community health
-
Contributor trend distinct committers, this year against last
-
Maintainer concentration bus factor now against a year ago
-
Issue backlog trend issues closed per issue opened, 12 months
-
Responsiveness median time to a maintainer’s first reply
Nine scores for testssl.sh, each built from the releases, notes and API history this site tracks — and, on Researcher and Business, where it stands among every measured tool in its category and how that has moved.
Score cards are part of every paid plan.
See plans → Already subscribed? Sign in →Trajectory
Blank means never measured; nothing here is a filled-in zero.
Peer standings are included with Researcher and Business. See how this tool ranks against its competitors, using data we don't publish anywhere else.
See plans →Each score is 0–100 on a published rubric, derived from data this site already shows. A dimension we cannot measure says so — it is never scored 0 and never enters a rank.
How this is scored
- Shipping velocity — releases a month over the last 12 months, on a log scale where 16 a month scores 100. Needs 3 releases in the window.
- Documentation quality — the release-notes rubric published on the analytics page, unchanged.
- Breaking-change discipline — the share of releases carrying a breaking change (none scores 100, half or more scores 0). Only projects that label breaking changes are measured: a clean record cannot be told from an unlabelled one.
- Maintenance risk — quiet time measured against the tool's own release cadence (quiet longer than 90 days and three typical gaps scores 0), plus the number of active maintainers and whether contributors are growing, where known. Higher is lower risk.
- Innovation & surface — new capabilities in the feature ledger this year, API and MCP operations added, and the share of commits that are features: the mean of whichever we hold.
- Community health (open-source tools only) — each is a direction, not a size: contributors this year against last, the bus factor now against a year ago, and issues closed per issue opened, where steady scores 50, doubled 100 and halved 0; plus the median time to a maintainer's first reply (an hour scores about 100, a month or more 0). A commercial card has no repository and carries none of the four.
- Documented delivery (commercial tools) — when a vendor's documented new capabilities have slowed against its own baseline, that counts against the overall standing as heavily as two low dimensions. Steady delivery, or too little history to judge, leaves the standing alone; it is never a sixth score.
- Open-source tools are scored on repository signals; commercial tools on their published changelog. Ranks compare tools within one category and one profile and need at least five measured peers; the overall standing needs three ranked dimensions. Best-in-breed or consolidator is a shape, not a quality, and is never scored.
Release-note detail over time
See how much detail testssl.sh puts in its release notes, quarter by quarter, and compare it with tracked tools in the same category. This history uses up to ten retained, reviewed notes per tool; sparse or blank older quarters may reflect that limit.
Checking release-note history…
Releases
16 entries
No entries match these filters.
- October 20261
- July 20261
- February 20261
- June 20251
- January 20251
- October 20231
- September 20221
- October 20211
- December 20191
- February 20191
- November 20181
- October 20181
- September 20181
- September 20171
- May 20171
- September 20151
Project health
Issue, contributor and maintainer activity in drwetter/testssl.sh, 2023-10 – 2026-09, as of 2026-09-25. Twelve-month figures first; the trend lines run the whole window.
- Contributors 14 −8 vs prior 12 months
- Maintainers 1 +0 joined · −0 left, last 12 months
- Bus factor 1 committers behind half the commits
- Community-filed not measured of issues opened, last 12 months
- Median time to close not measured issues closed, last 12 months
- Open backlog not measured open issues today
- Issues opened / month not measured
- Open backlog not measured
- Contributors / month 2
- Commits / month 22
- Stars 9,202
Counts from the project's public repository and git history; no individuals are identified. Maintainers are the committers covering 80% of the last year's commits. how we measure this
Libraries its release ships
What its latest release locks, checked against known advisories.None of its release's images build from a lockfile we can read.
Add the badge to your README
Maintain this project? The badge links readers straight to this page, so they can follow every release here.