
Biblioteca de escaneo SSL/TLS rápida y potente.
SSLyze es una herramienta de escaneo SSL/TLS rápida y potente, así como una biblioteca de Python.
SSLyze puede analizar la configuración SSL/TLS de un servidor conectándose a él, para asegurarse de que utiliza configuraciones de cifrado sólidas (certificado, suites de cifrado, curvas elípticas, etc.) y que no es vulnerable a ataques TLS conocidos (Heartbleed, ROBOT, inyección CCS de OpenSSL, etc.).
En Windows, Linux (x86 o x64) y macOS, SSLyze se puede instalar directamente a través de 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"
También se puede usar a través de Docker:
$ docker run --rm -it nablac0d3/sslyze:6.1.0 www.google.com
Por último, se puede descargar un ejecutable de Windows precompilado desde la página de Versiones.
Hay un script de ejemplo que describe cómo usar la API de Python de SSLyze disponible en ./api_sample.py.
La documentación completa de la API de Python de SSLyze está disponible aquí.
Por defecto, SSLyze comprobará los resultados del escaneo del servidor contra la configuración TLS "intermedia" recomendada por Mozilla, y devolverá un código de salida distinto de cero si el servidor no cumple.
$ python -m sslyze mozilla.com
Comprobando resultados contra la configuración "intermedia" de Mozilla. Consulte https://ssl-config.mozilla.org/ para más detalles.
mozilla.com:443: OK - Cumple.
La configuración de Mozilla contra la que comprobar se puede configurar mediante --mozilla_config={old, intermediate, modern}:
$ python -m sslyze --mozilla_config=modern mozilla.com
Comprobando resultados contra la configuración "moderna" de Mozilla. Consulte https://ssl-config.mozilla.org/ para más detalles.
mozilla.com:443: FALLÓ - No cumple.
* certificate_types: Los tipos de certificado desplegados son {'rsa'}, deberían tener al menos uno de {'ecdsa'}.
* certificate_signatures: Las firmas de certificado desplegadas son {'sha256WithRSAEncryption'}, deberían tener al menos una de {'ecdsa-with-SHA512', 'ecdsa-with-SHA256', 'ecdsa-with-SHA384'}.
* tls_versions: Las versiones TLS {'TLSv1.2'} son compatibles, pero deberían rechazarse.
* ciphers: Las suites de cifrado {'TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384', 'TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256', 'TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256'} son compatibles, pero deberían rechazarse.
Alternativamente, puedes comprobar contra tu propia configuración TLS personalizada proporcionando un archivo JSON que siga el formato de configuración TLS de Mozilla:
$ python -m sslyze --custom_tls_config custom_tls_config_example.json mozilla.com
Comprobando resultados contra la configuración TLS personalizada.
mozilla.com:443: OK - Cumple.
Consulta custom_tls_config_example.json para ver un ejemplo de una configuración TLS personalizada que puede usar SSLyze.
Esta funcionalidad se puede utilizar para ejecutar fácilmente un escaneo de SSLyze como un paso de CI/CD para garantizar el cumplimiento de TLS.
Para configurar un entorno de desarrollo:
$ pip install --upgrade pip setuptools wheel
$ pip install -e .
$ pip install -r requirements-dev.txt
Luego se pueden ejecutar las pruebas usando:
$ invoke test
Copyright (c) 2026 Alban Diquet
SSLyze se distribuye bajo los términos de la Licencia Pública General Affero de GNU (AGPL). Consulta LICENSE.txt para obtener detalles y excepciones.