An open API service indexing awesome lists of open source software.

https://github.com/alexandre-meline/lts-scan

LTS scan is a lightweight and asynchronous command-line tool for scanning SSL/TLS configurations using the Qualys SSL Labs API. It supports bulk domain scanning with output in CSV or JSON formats, making it ideal for audits, compliance, and cybersecurity monitoring.
https://github.com/alexandre-meline/lts-scan

command-line-tool cybersecurity https python qualys reporting security ssl ssl-labs ssl-scan tls

Last synced: 4 months ago
JSON representation

LTS scan is a lightweight and asynchronous command-line tool for scanning SSL/TLS configurations using the Qualys SSL Labs API. It supports bulk domain scanning with output in CSV or JSON formats, making it ideal for audits, compliance, and cybersecurity monitoring.

Awesome Lists containing this project

README

          

# LTS scan

**lts-scan** is a command-line tool written in Python that leverages the [Qualys SSL Labs API](https://api.ssllabs.com) to scan and evaluate SSL/TLS configurations of websites.
It supports multiple hosts, retry logic, and output in CSV or JSON formats.

---

## โœจ Features

- Asynchronous scans using `asyncio` and `aiohttp`
- Retry mechanism for API failures
- Supports both CSV and JSON output
- Automatically waits until scan status is `READY` or `ERROR`
- Command-line options for customization
- Clear and readable logs

---

## ๐Ÿš€ Installation

You can install `lts-scan` from [PyPI](https://pypi.org/project/lts-scan/) using pip:

```bash
pip install lts-scan
```

Or from source we recommend using [Poetry](https://python-poetry.org/) for managing dependencies and environments.

```bash
git clone https://github.com/alexandre-meline/lts-scan.git
cd lts-scan
poetry install
```

## ๐Ÿงช Usage

Create a hosts.txt file with one domain per line:

```bash
google.com
github.com
expired.badssl.com
```

Then run the tool:

```bash
lts-scan --input hosts.txt --output results.csv
```

You can customize the output format:

```bash
lts-scan --input hosts.txt --output results.json --format json
```

### ๐Ÿ”ง Command-line options

| Option | Description | Default |
| --- | --- | --- |
| `--input` | Path to the input file containing hosts |_required_ |
| `--output` | Path to the output file | _required_ |
| `--format` | Output format: `csv` or `json` | `csv` |
| `--retries` | Number of retry attempts on request failure | `3` |
| `--delay` | Delay (in seconds) between retries | `10` |

## ๐Ÿ“„ Output Examples

CSV

```csv
host,status,startTime,testTime,ipAddress,grade
example.com,READY,1681234567890,1681237890123,93.184.216.34,A
```

JSON

```json
[
{
"host": "example.com",
"status": "READY",
"startTime": 1681234567890,
"testTime": 1681237890123,
"endpoints": [
{
"ipAddress": "93.184.216.34",
"grade": "A"
}
]
}
]
```

## ๐Ÿ“‹ License

This project is licensed under the MIT License.

## ๐Ÿ™Œ Acknowledgements

- [Qualys SSL Labs API](https://www.ssllabs.com/)

## ๐Ÿ’ก Future Improvements

- Parallel host scanning
- Export to HTML or PDF

## ๐Ÿค Contributions

Pull requests and suggestions are welcome! Please open an issue or submit a PR to help improve the tool.