Updated Jul 15, 2026

Scanners

Audit TLS posture, named bugs, and Mozilla baselines

sslyze is a fast and powerful SSL/TLS scanning tool and Python library that analyzes a server's certificate, cipher suites, elliptic curves, and protocol support by connecting to it, and checks the configuration against known TLS vulnerabilities.

installpip install --upgrade sslyze

Python · AGPL-3.0 license

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 baseline
sslyze --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.

Heartbleed (--heartbleed), OpenSSL CCS injection CVE-2014-0224 (--openssl_ccs), ROBOT (--robot), insecure and client-initiated renegotiation (--reneg), CRIME-enabling TLS compression (--compression), and downgrade protection via TLS_FALLBACK_SCSV (--fallback).

Yes. Pass a targets file with one host:port per line through --targets_in. sslyze scans them concurrently into one result set for estate-wide TLS checks.

Yes. Use --starttls with smtp, imap, pop3, xmpp, ftp, ldap, rdp, or postgres, or auto to deduce the protocol from the port. That covers mail and database fronts, not only HTTPS.

--mozilla_config grades the server against a published Mozilla TLS baseline (intermediate by default, or modern and old). It queues the scan commands the baseline needs and reports pass or fail. Set disable to skip.

tlsx is a fast TLS grabber for wide scopes. testssl.sh is a thorough shell scanner. sslyze sits in between: named vuln probes, certificate analysis, and Mozilla baseline grades with structured output suited to batch host lists.

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.