
Libreria di scansione SSL/TLS veloce e potente.
SSLyze è uno strumento di scansione SSL/TLS rapido e potente, nonché una libreria Python.
SSLyze può analizzare la configurazione SSL/TLS di un server connettendosi ad esso, per garantire che utilizzi impostazioni di crittografia robuste (certificato, suite di cifratura, curve ellittiche, ecc.) e che non sia vulnerabile ad attacchi TLS noti (Heartbleed, ROBOT, OpenSSL CCS injection, ecc.).
Su Windows, Linux (x86 o x64) e macOS, SSLyze può essere installato direttamente tramite pip:
$ pip install --upgrade pip setuptools wheel
$ pip install --upgrade sslyze
$ python -m sslyze www.yahoo.com www.google.com "[2607:f8b0:400a:807::2004]:443"
Può anche essere utilizzato tramite Docker:
$ docker run --rm -it nablac0d3/sslyze:6.1.0 www.google.com
Infine, un eseguibile Windows precompilato può essere scaricato dalla pagina delle release.
Uno script di esempio che descrive come utilizzare l'API Python di SSLyze è disponibile in ./api_sample.py.
La documentazione completa per l'API Python di SSLyze è disponibile qui.
Per impostazione predefinita, SSLyze controllerà i risultati della scansione del server rispetto alla configurazione TLS "intermedia" raccomandata da Mozilla e restituirà un codice di uscita diverso da zero se il server non è conforme.
$ python -m sslyze mozilla.com
Controllo dei risultati rispetto alla configurazione "intermedia" di Mozilla. Per maggiori dettagli, consultare https://ssl-config.mozilla.org/.
mozilla.com:443: OK - Conforme.
La configurazione Mozilla da verificare può essere specificata tramite --mozilla_config={old, intermediate, modern}:
$ python -m sslyze --mozilla_config=modern mozilla.com
Controllo dei risultati rispetto alla configurazione "moderna" di Mozilla. Per maggiori dettagli, consultare https://ssl-config.mozilla.org/.
mozilla.com:443: FALLITO - Non conforme.
* certificate_types: I tipi di certificato distribuiti sono {'rsa'}, dovrebbero includere almeno uno tra {'ecdsa'}.
* certificate_signatures: Le firme dei certificati distribuiti sono {'sha256WithRSAEncryption'}, dovrebbero includere almeno una tra {'ecdsa-with-SHA512', 'ecdsa-with-SHA256', 'ecdsa-with-SHA384'}.
* tls_versions: Le versioni TLS {'TLSv1.2'} sono supportate, ma dovrebbero essere rifiutate.
* ciphers: Le suite di cifratura {'TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384', 'TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256', 'TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256'} sono supportate, ma dovrebbero essere rifiutate.
In alternativa, è possibile verificare una propria configurazione TLS personalizzata fornendo un file JSON che segua il formato di configurazione TLS di Mozilla:
$ python -m sslyze --custom_tls_config custom_tls_config_example.json mozilla.com
Controllo dei risultati rispetto alla configurazione TLS personalizzata.
mozilla.com:443: OK - Conforme.
Vedere custom_tls_config_example.json per un esempio di configurazione TLS personalizzata utilizzabile da SSLyze.
Questa funzionalità può essere utilizzata per eseguire facilmente una scansione SSLyze come passaggio CI/CD al fine di garantire la conformità TLS.
Per configurare un ambiente di sviluppo:
$ pip install --upgrade pip setuptools wheel
$ pip install -e .
$ pip install -r requirements-dev.txt
I test possono quindi essere eseguiti utilizzando:
$ invoke test
Copyright (c) 2026 Alban Diquet
SSLyze è reso disponibile secondo i termini della GNU Affero General Public License (AGPL). Consultare LICENSE.txt per dettagli ed eccezioni.