tlsx: TLS configuration and certificate recon

tlsx · MIT

tlsx connects to a TLS service and reports what it finds: certificate subject and SAN entries, issuer, expiry, protocol versions, cipher suites, JARM hash. It is both a configuration checker and a discovery tool — certificate SANs routinely name hostnames that no passive source knows about.

Install

go install -v github.com/projectdiscovery/tlsx/cmd/tlsx@latest

Core commands

# basic handshake detail
tlsx -l hosts.txt -silent

# pull SAN entries — this is discovery, not just inspection
tlsx -l hosts.txt -san -cn -silent -resp-only

# expiry and issuer
tlsx -l hosts.txt -expired -self-signed -mismatched -silent

# protocol and cipher enumeration
tlsx -l hosts.txt -tls-version -cipher -silent

# JSON
tlsx -l hosts.txt -json -o tls.jsonl -san -cn -jarm

Output

{"host":"example.com","port":"443","tls_version":"tls12","cipher":"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
 "not_after":"2026-11-02T12:00:00Z","subject_cn":"example.com",
 "subject_an":["example.com","www.example.com","internal-api.example.com"],
 "issuer_org":["Let's Encrypt"],"self_signed":false}

Where it sits in Tandera

tlsx is scheduled in two phases. In fingerprint it runs against the live-host set to record certificate and protocol detail. In active_scan on recon_web_full it performs the deeper protocol and cipher enumeration that a NonIntrusive flow will not do.

The SAN entries it recovers feed back into the host inventory — a certificate naming internal-api.example.com puts that hostname into scope discovery even if no passive source ever saw it.

Using it in a pentest

Read the SANs before you read the cipher list. A shared certificate is a map of the organisation’s internal naming. internal-, staging-, vpn- and admin- prefixes in a public certificate are the highest-value output this tool produces.

Weak ciphers are a finding, but rate them honestly. TLS 1.0 on a public login page and TLS 1.0 on a legacy internal service are not the same risk. A report that lists both as High loses credibility.

Expiry dates are operational intelligence. A certificate expiring in nine days tells you something about how the target is maintained, and is worth a line in the report even though it is not a vulnerability.

early access

Get Tandera before your next engagement.

Join the waitlist for early access. We are onboarding pentest teams in waves.

Priority onboarding for pentest teams.
A direct line to the people building it.
Early-access pricing, locked in.

No spam, no card. Unsubscribe anytime.

enespt-br