This is a forked project from https://github.com/kyhau/ssllabs-scan. This project has been forked with the aim of customizing outputs and making the project more minimalist, with some additional features.
- Added execution log generation.
- Acceptance of a new argument to set the folder where log files will be saved.
- Added Discord notification support.
- Modified HTML output page formatting, condensing multiple pieces of information into columns to reduce the number of columns, but added header information for presentation.
- Modified HTML output page formatting to display the time of the last * generation and the ability to download the generated JSON and CSV files.
- Prioritized the recording of the JSON file regardless of the return status.
- Defined quality gate logic for triggering alerts.
- Removed support and documentation related to tests and Docker.
This tool calls the SSL Labs API v3 to do SSL testings on the given hosts, and generates csv and html reports.
- Python - support Python 3.8, 3.9, 3.10, 3.11.
- CodeQL is enabled in this repository.
- Dependabot is enabled for auto dependency updates.
- Gitleaks and TruffleHog are enabled in this GitHub Actions workflow for detecting and preventing hardcoded secrets.
Sample input: sample/SampleServerList.txt
- summary.html (sample output: sample/summary.html)
- summary.csv (sample output: sample/summary.csv)
- hostname.json (sample output: sample/google.com.json)
You can change the report template and styles in these files:
ℹ️ Please note that the SSL Labs Assessment API has access rate limits. You can find more details in the sections "Error Response Status Codes" and "Access Rate and Rate Limiting" in the official SSL Labs API Documentation. Some common status codes are:
- 400 - invocation error (e.g., invalid parameters)
- 429 - client request rate too high or too many new assessments too fast
- 500 - internal error
- 503 - the service is not available (e.g., down for maintenance)
- 529 - the service is overloaded
# Create and activate a new virtual env (optional)
virtualenv env
. env/bin/activate
# Install and run
pip install -e .
ssllabs-scan sample/SampleServerList.txt
# Create and activate a new virtual env (optional)
virtualenv env
env\Scripts\activate
# Install and run
pip install -e .
ssllabs-scan sample\SampleServerList.txt
$ ssllabs-scan sample/SampleServerList.txt
Start analyzing duckduckgo.com...
Status: DNS, StatusMsg(Resolving domain names): waiting 30 secs until next check...
Status: IN_PROGRESS, StatusMsg(None): waiting 30 secs until next check...
Status: IN_PROGRESS, StatusMsg(None): waiting 30 secs until next check...
Start analyzing google.com...
Status: DNS, StatusMsg(Resolving domain names): waiting 30 secs until next check...
Status: IN_PROGRESS, StatusMsg(None): waiting 30 secs until next check...
Status: IN_PROGRESS, StatusMsg(None): waiting 30 secs until next check...
Status: IN_PROGRESS, StatusMsg(None): waiting 30 secs until next check...
Status: IN_PROGRESS, StatusMsg(None): waiting 30 secs until next check...
Status: IN_PROGRESS, StatusMsg(None): waiting 30 secs until next check...
Status: IN_PROGRESS, StatusMsg(None): waiting 30 secs until next check...
Creating summary.html ...