{"id":28315687,"url":"https://github.com/alexandre-meline/lts-scan","last_synced_at":"2025-09-11T23:13:22.169Z","repository":{"id":288433564,"uuid":"967414654","full_name":"alexandre-meline/lts-scan","owner":"alexandre-meline","description":"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.","archived":false,"fork":false,"pushed_at":"2025-04-18T09:04:39.000Z","size":83,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-01T09:41:46.285Z","etag":null,"topics":["command-line-tool","cybersecurity","https","python","qualys","reporting","security","ssl","ssl-labs","ssl-scan","tls"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alexandre-meline.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-16T12:23:07.000Z","updated_at":"2025-04-18T09:04:42.000Z","dependencies_parsed_at":"2025-04-21T05:48:12.017Z","dependency_job_id":null,"html_url":"https://github.com/alexandre-meline/lts-scan","commit_stats":null,"previous_names":["alexandre-meline/lts_scan"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/alexandre-meline/lts-scan","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandre-meline%2Flts-scan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandre-meline%2Flts-scan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandre-meline%2Flts-scan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandre-meline%2Flts-scan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alexandre-meline","download_url":"https://codeload.github.com/alexandre-meline/lts-scan/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandre-meline%2Flts-scan/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261014097,"owners_count":23097174,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["command-line-tool","cybersecurity","https","python","qualys","reporting","security","ssl","ssl-labs","ssl-scan","tls"],"created_at":"2025-05-24T23:18:49.437Z","updated_at":"2025-09-11T23:13:22.150Z","avatar_url":"https://github.com/alexandre-meline.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LTS scan\n\n**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.  \nIt supports multiple hosts, retry logic, and output in CSV or JSON formats.\n\n---\n\n## ✨ Features\n\n- Asynchronous scans using `asyncio` and `aiohttp`\n- Retry mechanism for API failures\n- Supports both CSV and JSON output\n- Automatically waits until scan status is `READY` or `ERROR`\n- Command-line options for customization\n- Clear and readable logs\n\n---\n\n## 🚀 Installation\n\nYou can install `lts-scan` from [PyPI](https://pypi.org/project/lts-scan/) using pip:\n\n```bash\npip install lts-scan\n```\n\nOr from source we recommend using [Poetry](https://python-poetry.org/) for managing dependencies and environments.\n\n```bash\ngit clone https://github.com/alexandre-meline/lts-scan.git\ncd lts-scan\npoetry install\n```\n\n## 🧪 Usage\n\nCreate a hosts.txt file with one domain per line:\n\n```bash\ngoogle.com\ngithub.com\nexpired.badssl.com\n```\n\nThen run the tool:\n\n```bash\nlts-scan --input hosts.txt --output results.csv\n```\n\nYou can customize the output format:\n\n```bash\nlts-scan --input hosts.txt --output results.json --format json\n```\n\n### 🔧 Command-line options\n\n| Option | Description | Default |\n| --- | --- | --- |\n| `--input` | Path to the input file containing hosts |_required_ |\n| `--output` | Path to the output file | _required_ |\n| `--format` | Output format: `csv` or `json` | `csv` |\n| `--retries` | Number of retry attempts on request failure | `3` |\n| `--delay` | Delay (in seconds) between retries | `10` |\n\n## 📄 Output Examples\n\nCSV\n\n```csv\nhost,status,startTime,testTime,ipAddress,grade\nexample.com,READY,1681234567890,1681237890123,93.184.216.34,A\n```\n\nJSON\n\n```json\n[\n  {\n    \"host\": \"example.com\",\n    \"status\": \"READY\",\n    \"startTime\": 1681234567890,\n    \"testTime\": 1681237890123,\n    \"endpoints\": [\n      {\n        \"ipAddress\": \"93.184.216.34\",\n        \"grade\": \"A\"\n      }\n    ]\n  }\n]\n```\n\n## 📋 License\n\nThis project is licensed under the MIT License.\n\n## 🙌 Acknowledgements\n\n- [Qualys SSL Labs API](https://www.ssllabs.com/)\n\n## 💡 Future Improvements\n\n- Parallel host scanning\n- Export to HTML or PDF\n\n## 🤝 Contributions\n\nPull requests and suggestions are welcome! Please open an issue or submit a PR to help improve the tool.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexandre-meline%2Flts-scan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexandre-meline%2Flts-scan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexandre-meline%2Flts-scan/lists"}