sslyze

Scanner rapide de configuration SSL/TLS. Teste les suites de chiffrement, la validité des certificats, les versions de protocole, HSTS, l'OCSP stapling, la reprise de session et les vulnérabilités TLS connues (BEAST, POODLE, Heartbleed). Fast SSL/TLS configuration scanner. Tests cipher suites, certificate validity, protocol versions, HSTS, OCSP stapling, session resumption, and known TLS vulnerabilities (BEAST, POODLE, Heartbleed).

↗ https://github.com/nabla-c0d3/sslyze

Overview

SSLyze is a fast and powerful SSL/TLS scanner that analyzes the TLS configuration of a server. It checks for weak cipher suites, certificate issues, protocol version support, and known vulnerabilities — providing a comprehensive security assessment of TLS deployments.

Basic Usage

Basic scan

sslyze target.com

Scan specific port

sslyze target.com:8443

Comprehensive scan

sslyze --regular target.com

JSON output

sslyze --json_out results.json target.com

Scan Options

Check all cipher suites

sslyze --sslv2 --sslv3 --tlsv1 --tlsv1_1 --tlsv1_2 --tlsv1_3 target.com

Certificate info

sslyze --certinfo target.com
# Check for specific vulnerabilities
sslyze --heartbleed target.com
sslyze --robot target.com
sslyze --openssl_ccs target.com

HTTP security headers (HSTS)

sslyze --http_headers target.com

Session resumption

sslyze --resum target.com

Comprehensive (all above)

sslyze --regular target.com

What --regular Checks

sslyze --regular target.com

→ Includes: - Certificate info and chain - TLS 1.0, 1.1, 1.2, 1.3 support - Cipher suite enumeration - ROBOT vulnerability - Heartbleed - OpenSSL CCS injection - Session resumption - HTTP headers (HSTS) - OCSP stapling - Elliptic curve support

Multiple Targets

Scan multiple hosts

sslyze target1.com target2.com target3.com

Read from file

sslyze --targets_in targets.txt

Scan entire subnet (with port)

for ip in 10.10.10.{1..254}; do sslyze $ip:443 2>/dev/null; done

JSON Output

Save to JSON

sslyze --json_out results.json --regular target.com
# Parse for cipher suites
cat results.json | python3 -c "
import json, sys
data = json.load(sys.stdin)
for host in data['server_scan_results']:
    print(host['server_location']['hostname'])
"

Tips

  • Use --regular for a balanced scan covering all important checks
  • SSLv2/3 and TLS 1.0/1.1 are deprecated — flag any server still supporting them
  • Check for certificate chain issues — missing intermediates cause client errors
  • HSTS preloading absence is worth noting for HTTPS sites
  • For quick cipher audit: sslyze --sslv2 --sslv3 --tlsv1 target.com to find old protocols
  • Compare against testssl.sh for a second opinion on TLS configuration
Help / Man page
sslyze [options] host[:port]

--regular       Run full scan (most checks)
--certinfo      Certificate info
--sslv2         Test SSLv2
--sslv3         Test SSLv3
--tlsv1         Test TLS 1.0
--tlsv1_1       Test TLS 1.1
--tlsv1_2       Test TLS 1.2
--tlsv1_3       Test TLS 1.3
--heartbleed    Check for Heartbleed
--robot         Check for ROBOT attack
--http_headers  Check HTTP security headers
--resum         Test session resumption
--json_out F    JSON output file
--targets_in F  File with targets

Vue d’ensemble

SSLyze est un scanner SSL/TLS rapide et puissant qui analyse la configuration TLS d’un serveur. Il vérifie les suites de chiffrement faibles, les problèmes de certificat, le support des versions de protocole, et les vulnérabilités connues : offrant une évaluation de sécurité complète des déploiements TLS.

Utilisation de base

# Scan basique
sslyze target.com

# Scanner un port spécifique
sslyze target.com:8443

# Scan complet
sslyze --regular target.com

# Sortie JSON
sslyze --json_out results.json target.com

Options de scan

# Vérifier toutes les suites de chiffrement
sslyze --sslv2 --sslv3 --tlsv1 --tlsv1_1 --tlsv1_2 --tlsv1_3 target.com

# Informations de certificat
sslyze --certinfo target.com

# Vérifier des vulnérabilités spécifiques
sslyze --heartbleed target.com
sslyze --robot target.com
sslyze --openssl_ccs target.com

# Headers de sécurité HTTP (HSTS)
sslyze --http_headers target.com

# Reprise de session
sslyze --resum target.com

# Complet (tout ce qui précède)
sslyze --regular target.com

Ce que vérifie --regular

sslyze --regular target.com

→ Comprend : - Informations et chaîne de certificat - Support TLS 1.0, 1.1, 1.2, 1.3 - Énumération des suites de chiffrement - Vulnérabilité ROBOT - Heartbleed - Injection CCS OpenSSL - Reprise de session - Headers HTTP (HSTS) - OCSP stapling - Support des courbes elliptiques

Cibles multiples

# Scanner plusieurs hôtes
sslyze target1.com target2.com target3.com

# Lire depuis un fichier
sslyze --targets_in targets.txt

# Scanner un sous-réseau entier (avec port)
for ip in 10.10.10.{1..254}; do sslyze $ip:443 2>/dev/null; done

Sortie JSON

# Sauvegarder en JSON
sslyze --json_out results.json --regular target.com

# Parser pour les suites de chiffrement
cat results.json | python3 -c "
import json, sys
data = json.load(sys.stdin)
for host in data['server_scan_results']:
    print(host['server_location']['hostname'])
"

Conseils

  • Utiliser --regular pour un scan équilibré couvrant toutes les vérifications importantes
  • SSLv2/3 et TLS 1.0/1.1 sont obsolètes : signaler tout serveur les supportant encore
  • Vérifier les problèmes de chaîne de certificat : des intermédiaires manquants causent des erreurs client
  • L’absence de préchargement HSTS mérite d’être notée pour les sites HTTPS
  • Pour un audit rapide des ciphers : sslyze --sslv2 --sslv3 --tlsv1 target.com pour trouver les vieux protocoles
  • Comparer avec testssl.sh pour un second avis sur la configuration TLS
Aide / Page de manuel
sslyze [options] host[:port]

--regular       Run full scan (most checks)
--certinfo      Certificate info
--sslv2         Test SSLv2
--sslv3         Test SSLv3
--tlsv1         Test TLS 1.0
--tlsv1_1       Test TLS 1.1
--tlsv1_2       Test TLS 1.2
--tlsv1_3       Test TLS 1.3
--heartbleed    Check for Heartbleed
--robot         Check for ROBOT attack
--http_headers  Check HTTP security headers
--resum         Test session resumption
--json_out F    JSON output file
--targets_in F  File with targets