skillfed

sslyze

Fast and powerful SSL/TLS scanning library.

sslyze v6.3.1 127.1K downloads/30d#11,754 on PyPI3,770
AGPL license AGPL Active released

What it is and what it does

SSLyze is a Python library and command-line tool for analyzing the SSL/TLS configuration of remote servers. It connects to a server, inspects its certificate, supported cipher suites, protocol versions, and elliptic curves, then reports on encryption strength and known vulnerabilities like Heartbleed, ROBOT, and OpenSSL CCS injection. It supports scanning non-HTTP servers including SMTP, XMPP, LDAP, POP, IMAP, RDP, Postgres, and FTP.

The tool is designed for both one-off security audits and continuous compliance checking. It can validate server configurations against Mozilla's recommended TLS profiles (old, intermediate, modern) or custom JSON-defined policies, making it suitable for CI/CD integration. Results can be exported to JSON for further processing. The library exposes a full Python API for embedding scans into applications, such as Lambda functions or custom security tools.

Use it for:

  • Audit a web server's TLS configuration to identify weak ciphers or outdated protocol versions before deployment.
  • Run SSLyze as a CI/CD step to enforce Mozilla's modern TLS configuration and fail builds that don't comply.
  • Scan SMTP or LDAP servers to verify they support strong encryption and are not vulnerable to known attacks.
  • Build a security monitoring dashboard that periodically scans your organization's servers and exports results to JSON for alerting.
  • Test a custom TLS policy by defining allowed certificate types, cipher suites, and versions in a JSON file and validating servers against it.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

SSLyze is a fast SSL/TLS scanning tool and Python library that analyzes server configurations for encryption strength and known TLS vulnerabilities by connecting and inspecting certificate, cipher suites, and protocol settings.

Yes, with conditions. SSLyze is actively maintained, has no known vulnerabilities, and is well-suited for TLS auditing and compliance checking. However, the AGPL license is restrictive—proprietary projects must either accept copyleft obligations or avoid it. High install friction (native dependencies) may complicate deployment in some environments. Install if you need TLS scanning and can accept AGPL terms.

Install

sslyze on PyPI

pip

pip install sslyze

uv

uv add sslyze

poetry

poetry add sslyze

Installing sslyze

Before you install

High install friction due to compiled dependencies (nassl, cryptography, tls-parser). The package is actively maintained with recent releases and a stable repository, but setup requires building native extensions.

License in practice

SSLyze is licensed under AGPL, which requires that any modifications or derivative works using this library must also be released under AGPL. This is a copyleft license with strong reciprocal obligations; proprietary or closed-source projects should verify compatibility before depending on it.

Quickstart

pip install sslyze
python -m sslyze www.example.com

# Or via Python API:
from sslyze import ServerScanRequest, Scanner
request = ServerScanRequest(hostname="www.example.com")
scanner = Scanner()
results = scanner.run(request)

Requires Python 3.10 or later. Native compilation dependencies (nassl, cryptography) must build successfully on your platform.

Verify before relying

  • Whether the AGPL license applies to indirect use (e.g., calling sslyze from a web service) and what derivative-work obligations that triggers
  • Performance characteristics when scanning hundreds of thousands of servers as claimed in the description

Package facts

License AGPL (agpl)
Python support supports the current Python release (>=3.10)
Install friction high — source build required
Runtime dependencies 4 — nassl, cryptography, tls-parser, pydantic
Maintenance actively maintained — 138 days since the last release
Last repo commit
First released
Downloads 127,082/month — #11,754 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: sslyze-6.3.1.tar.gz

Keywords: ssl, tls, scan, security, library

Development Status :: 4 - BetaIntended Audience :: DevelopersIntended Audience :: System AdministratorsLicense :: OSI Approved :: GNU Affero General Public License v3Natural Language :: FrenchProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: SecurityTopic :: System :: MonitoringTopic :: System :: NetworkingTopic :: System :: Networking :: Monitoring

Tags

ssl tls certificate scanningtls configuration auditssl vulnerability testingcipher suite analysisssl compliance checkingtls security assessmentcertificate validation tool
tls-auditcompliance-checkingcryptography

More Monitoring packages

tqdm

Wraps any iterable to display a real-time…

copyleft · top 100 on PyPI

opentelemetry-semantic-conventions

Provides generated Python code for…

permissive · top 100 on PyPI

opentelemetry-sdk

Provides the reference implementation of the…

permissive · top 100 on PyPI

opentelemetry-api

Provides the abstract API and interfaces for…

permissive · top 100 on PyPI

opentelemetry-exporter-otlp-proto-http

Exports OpenTelemetry observability data to an…

permissive · top 1,000 on PyPI

opentelemetry-instrumentation

Provides automatic instrumentation commands and…

permissive · top 1,000 on PyPI

nassl

nassl is an OpenSSL wrapper for Python that…

agpl · top 15,000 on PyPI

tls-parser

Parses TLS records from binary data, extracting…

unclear · top 15,000 on PyPI

secure-smtplib

Provides secure SMTP subclasses with TLS/SSL…

unclear · top 15,000 on PyPI

django-sslserver

Provides an SSL-enabled development server for…

permissive · top 15,000 on PyPI

oscrypto

oscrypto provides TLS sockets, key generation,…

permissive · top 1,000 on PyPI

pip-system-certs

Automatically configures Python to use the…

permissive · top 5,000 on PyPI

python-certifi-win32

Patches certifi at runtime to include…

permissive · top 15,000 on PyPI

trustme

trustme generates fake TLS certificates and…

permissive · top 5,000 on PyPI

pyOpenSSL

pyOpenSSL wraps OpenSSL's SSL/TLS functionality…

permissive · top 1,000 on PyPI

python-nmap

Python wrapper for the nmap port scanner that…

copyleft · top 15,000 on PyPI