SSL Certificate Monitor
Check SSL certificate health for any domain — expiry, issuer, protocol version, and Subject Alternative Names.
Quick Start
python3 scripts/check_ssl.py example.com
python3 scripts/check_ssl.py example.com google.com github.com --warn-days 30
python3 scripts/check_ssl.py internal.host --port 8443 --json
Features
- Expiry check — days remaining with configurable warning threshold
- Multi-domain — check multiple domains in one command
- Certificate details — subject, issuer, protocol, serial number, SANs
- Error handling — detects DNS failures, timeouts, verification errors, refused connections
- Exit codes — 0 = all ok, 1 = warnings, 2 = expired or failed (useful for cron/CI)
- No dependencies — Python stdlib only
Options
| Flag | Description |
|---|---|
--warn-days N | Warning threshold in days (default: 14) |
--port PORT | Port to check (default: 443) |
--json | Output structured JSON |
--timeout N | Connection timeout in seconds (default: 10) |
Use Cases
- Daily cron job to monitor production domains
- Pre-deployment cert validation
- Audit all company domains in one pass
- CI/CD pipeline gate for cert health