
Быстрая и мощная библиотека для сканирования SSL/TLS.
SSLyze — это быстрый и мощный инструмент для сканирования SSL/TLS, а также библиотека для Python.
SSLyze позволяет проанализировать SSL/TLS-конфигурацию сервера, подключаясь к нему, чтобы убедиться, что используются надёжные настройки шифрования (сертификат, наборы шифров, эллиптические кривые и т.д.) и что он не уязвим для известных TLS-атак (Heartbleed, ROBOT, внедрение CCS в OpenSSL и др.).
На Windows, Linux (x86 или x64) и macOS SSLyze можно установить напрямую через 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"
Также его можно использовать через Docker:
$ docker run --rm -it nablac0d3/sslyze:6.1.0 www.google.com
Кроме того, предварительно собранный исполняемый файл для Windows можно скачать на странице релизов.
Пример скрипта, демонстрирующего использование Python API SSLyze, находится в файле ./api_sample.py.
Полная документация по Python API SSLyze доступна здесь.
По умолчанию SSLyze проверяет результаты сканирования сервера на соответствие рекомендуемой "промежуточной" TLS-конфигурации Mozilla и возвращает ненулевой код завершения, если сервер не соответствует требованиям.
$ python -m sslyze mozilla.com
Checking results against Mozilla's "intermediate" configuration. See https://ssl-config.mozilla.org/ for more details.
mozilla.com:443: OK - Compliant.
Конфигурацию Mozilla, с которой проводится сравнение, можно задать с помощью --mozilla_config={old, intermediate, modern}:
$ python -m sslyze --mozilla_config=modern mozilla.com
Checking results against Mozilla's "modern" configuration. See https://ssl-config.mozilla.org/ for more details.
mozilla.com:443: FAILED - Not compliant.
* certificate_types: Deployed certificate types are {'rsa'}, should have at least one of {'ecdsa'}.
* certificate_signatures: Deployed certificate signatures are {'sha256WithRSAEncryption'}, should have at least one of {'ecdsa-with-SHA512', 'ecdsa-with-SHA256', 'ecdsa-with-SHA384'}.
* tls_versions: TLS versions {'TLSv1.2'} are supported, but should be rejected.
* ciphers: Cipher suites {'TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384', 'TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256', 'TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256'} are supported, but should be rejected.
В качестве альтернативы можно проверять собственную пользовательскую TLS-конфигурацию, передав JSON-файл, соответствующий формату TLS-конфигурации Mozilla:
$ python -m sslyze --custom_tls_config custom_tls_config_example.json mozilla.com
Checking results against custom TLS configuration.
mozilla.com:443: OK - Compliant.
Пример пользовательской TLS-конфигурации, которую можно использовать с SSLyze, находится в файле custom_tls_config_example.json.
Эту функциональность можно легко использовать для запуска сканирования SSLyze как шага CI/CD, чтобы обеспечить соответствие TLS-требованиям.
Для настройки среды разработки:
$ pip install --upgrade pip setuptools wheel
$ pip install -e .
$ pip install -r requirements-dev.txt
Тесты можно запустить с помощью:
$ invoke test
Copyright (c) 2026 Alban Diquet
SSLyze распространяется на условиях Стандартной общественной лицензии GNU Affero (AGPL). Подробности и исключения см. в файле LICENSE.txt.