Updated Jul 15, 2026

Scanners

Audit TLS posture, named bugs, and Mozilla baselines

Python SSL/TLS scanner for protocols, certs, and named weaknesses.

Agent

overview

What sslyze does

sslyze takes a host or host:port (or --targets_in) and reports accepted protocols, cipher suites, curves, and certificate validity when --certinfo is on.

Run it after live-host probing when Heartbleed (--heartbleed), ROBOT (--robot), renegotiation, compression, and a Mozilla pass/fail via --mozilla_config matter.

httpx covers a cheap TLS banner grab. Prefer sslyze when STARTTLS mail or DB fronts (--starttls) and baseline grades matter more than a quick tech probe.

source github.com/nabla-c0d3/sslyze

use cases

Where sslyze fits

Audit a server's TLS configuration

Check which protocol versions, ciphers, and curves a host accepts to flag legacy SSL 2.0/3.0 and weak TLS 1.0/1.1 support.

Test for named TLS vulnerabilities

Probe directly for Heartbleed, CCS injection, ROBOT, insecure renegotiation, and compression-based CRIME exposure.

Validate certificate trust

Retrieve and analyze the certificate chain to confirm validity, expiry, and trust against a CA bundle.

Check against a Mozilla baseline

Compare the server's TLS setup to a Mozilla recommended configuration for a clear pass or fail across a fleet of hosts.

reference

sslyze inputs and flags

32 inputs
NameTypeFlagDescription
targetSTRING·The server to scan, as host or host:port.
targets-inFILE--targets_inRead targets from a file, one host:port per line.
certinfoBOOLEAN--certinfoRetrieve and analyze the server's certificate(s) to verify validity.
heartbleedBOOLEAN--heartbleedTest the server for the OpenSSL Heartbleed vulnerability.
robotBOOLEAN--robotTest the server for the ROBOT vulnerability.
mozilla-configSTRING--mozilla_configCheck TLS config against a Mozilla baseline (intermediate by default; disable to skip).
starttlsSTRING--starttlsPerform a StartTLS handshake (auto, smtp, xmpp, pop3, imap, ftp, ldap, rdp, postgres).
sniSTRING--sniServer Name Indication hostname to connect to (TLS 1.0+ only).

Showing key inputs. sslyze exposes 32 inputs in total.

Full flag reference (32 inputs)
NameTypeFlagDescription
keyFILE--keyClient private key file.
sniSTRING--sniServer Name Indication hostname to connect to, affecting TLS 1.0+ connections only.
certFILE--certClient certificate chain in PEM format, sorted from the subject's client certificate through any intermediate CA certificates.
passSTRING--passClient private key passphrase.
quietBOOLEAN--quietDo not output anything to stdout.
renegBOOLEAN--renegTest the server for insecure TLS renegotiation and client-initiated renegotiation.
resumBOOLEAN--resumTest the server for TLS 1.2 session resumption support using session IDs and TLS tickets.
robotBOOLEAN--robotTest the server for the ROBOT vulnerability.
sslv2BOOLEAN--sslv2Test the server for SSL 2.0 support.
sslv3BOOLEAN--sslv3Test the server for SSL 3.0 support.
tlsv1BOOLEAN--tlsv1Test the server for TLS 1.0 support.
targetSTRING·The server to scan, as host or host:port.
keyformSTRING--keyformClient private key format: DER or PEM (default).
tlsv1-1BOOLEAN--tlsv1_1Test the server for TLS 1.1 support.
tlsv1-2BOOLEAN--tlsv1_2Test the server for TLS 1.2 support.
tlsv1-3BOOLEAN--tlsv1_3Test the server for TLS 1.3 support.
xmpp-toSTRING--xmpp_toHostname for the 'to' attribute of the XMPP stream when using STARTTLS XMPP. Defaults to the server's hostname.
certinfoBOOLEAN--certinfoRetrieve and analyze the server's certificate(s) to verify validity.
fallbackBOOLEAN--fallbackTest the server for the TLS_FALLBACK_SCSV mechanism that prevents downgrade attacks.
starttlsSTRING--starttlsPerform a StartTLS handshake: auto, smtp, xmpp, xmpp_server, pop3, imap, ftp, ldap, rdp, or postgres. auto deduces the protocol from the port.
early-dataBOOLEAN--early_dataTest the server for TLS 1.3 early data support.
heartbleedBOOLEAN--heartbleedTest the server for the OpenSSL Heartbleed vulnerability.
targets-inFILE--targets_inRead the list of targets to scan from a file, one host:port per line.
compressionBOOLEAN--compressionTest the server for TLS compression support, which can enable a CRIME attack.
openssl-ccsBOOLEAN--openssl_ccsTest the server for the OpenSSL CCS injection vulnerability (CVE-2014-0224).
http-headersBOOLEAN--http_headersTest the server for the presence of security-related HTTP headers.
https-tunnelSTRING--https_tunnelTunnel traffic through an HTTP CONNECT proxy at 'http://USER:PW@HOST:PORT/'. Only Basic authentication is supported.
mozilla-configSTRING--mozilla_configQueue the scan commands to grade the server against a Mozilla recommended TLS configuration. Defaults to intermediate; set disable to skip.
resum-attemptsSTRING--resum_attemptsUsed with --resum. Number of session resumptions to attempt (default 5); a higher value like 100 gives a more accurate success rate.
elliptic-curvesBOOLEAN--elliptic_curvesTest the server for supported elliptic curves.
slow-connectionBOOLEAN--slow_connectionReduce the number of concurrent connections for slower but more reliable scans over slow links or fragile servers.
certinfo-ca-fileFILE--certinfo_ca_fileUsed with certinfo. PEM file of root certificates to verify the server certificate's validity.

example

Run sslyze

sslyze · command
# TLS scan of one host: certificate, Heartbleed, ROBOT, and Mozilla baselinesslyze --certinfo --heartbleed --robot --mozilla_config=intermediate example.com:443
sample output
 SCAN RESULTS FOR EXAMPLE.COM:443 - 198.51.100.23 ------------------------------------------------ * SSL 2.0 Cipher Suites:  The server rejected all cipher suites. * TLS 1.2 Cipher Suites:  The server accepted 5 cipher suites. * TLS 1.3 Cipher Suites:  The server accepted 3 cipher suites. * Heartbleed:  OK - Not vulnerable to Heartbleed. * ROBOT Attack:  OK - Not vulnerable, no oracle detected. * Certificate Information:  Trusted chain, leaf expires 2027-01-14. COMPLIANCE AGAINST MOZILLA TLS CONFIGURATION (intermediate): OK - Compliant.

guidance

Choosing sslyze

Use when you need a structured TLS posture read, named vulnerability probes, and a Mozilla baseline grade. Prefer httpx for cheap liveness-plus-tech across many hosts; feed sslyze the live HTTPS or STARTTLS targets that remain.

testssl.sh

Thorough shell-based TLS scanner. sslyze suits batch host lists and structured workflow output.

tlsx

TLS grabber for wide scopes. sslyze goes deeper on named vulnerabilities and config baselines.

faq

sslyze questions

Point sslyze at a host or host:port. It reports accepted protocol versions, cipher suites, elliptic curves, and the certificate chain. Add --certinfo, --heartbleed, or --mozilla_config to widen checks. On Trickest, set the node target input instead of a CLI host argument.

Run sslyze yourself

A host list is probed by httpx, then sslyze scans the live servers' TLS configuration and writes the report as output.

Facts on this page come from the live Trickest tool library.