Ispettore di certificati TLS da riga di comando
Project description
certinspect
Ispettore di certificati TLS da riga di comando.
Dato uno o più domini (o un file .pem/.der), mostra validità, giorni alla
scadenza, soggetto, issuer, SAN, algoritmo di firma, dimensione della chiave,
fingerprint SHA-256, flag CA, self-signed, eventuali debolezze crittografiche e
la corrispondenza dell'hostname.
Requisiti
- Python >= 3.14
Installazione (sviluppo)
python3.14 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pip install -e ".[dev]"
Uso
# Ispeziona un host
certinspect example.com
# Più host in una volta (modalità batch)
certinspect example.com github.com api.example.com
# Porta personalizzata
certinspect example.com --port 8443
# Output JSON (sempre una lista di oggetti)
certinspect example.com --json
# Ispeziona un certificato locale
certinspect --file ./certificato.pem
# Soglia di avviso scadenza personalizzata (default: 30 giorni)
certinspect example.com --days 14
# Salva il certificato scaricato in formato PEM
certinspect example.com --export ./scaricato.pem
Opzioni
| Opzione | Descrizione |
|---|---|
target... |
Uno o più domini da ispezionare. Ometti quando usi --file. |
--file PATH |
Ispeziona un certificato locale (PEM o DER) invece di un host. |
--port N |
Porta TCP a cui connettersi (default: 443). |
--json |
Stampa il risultato come JSON invece del testo leggibile. |
--days N |
Avvisa se il certificato scade entro N giorni (default: 30). |
--export PATH |
Salva il certificato ispezionato come file PEM in PATH. |
Exit code
Pensati per l'automazione (cron, CI, script di monitoraggio). In modalità batch viene restituito il caso peggiore tra tutti i target.
| Code | Significato |
|---|---|
| 0 | Certificato valido |
| 1 | Errore di runtime (rete, file, parsing) |
| 2 | Errore negli argomenti della riga di comando |
| 3 | In scadenza entro la soglia --days |
| 4 | Scaduto o con date non valide |
| 5 | L'hostname non corrisponde al certificato |
Esempio in uno script:
certinspect tuosito.it --days 21
case $? in
0) ;; # tutto ok
3) echo "In scadenza" | mail -s "Avviso" tu@mail.it ;;
4) echo "Scaduto" | mail -s "Urgente" tu@mail.it ;;
5) echo "Host errato" | mail -s "Urgente" tu@mail.it ;;
*) echo "Check fallito" ;;
esac
Sviluppo
# Test
pytest
# Lint e formattazione (Ruff)
ruff check src tests
ruff format src tests
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file certinspect-0.1.0.tar.gz.
File metadata
- Download URL: certinspect-0.1.0.tar.gz
- Upload date:
- Size: 12.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e36d64507f1e5991223e5a6e793d20b218fb5d090cf8de302d7280bc71b08461
|
|
| MD5 |
d7c6ac341241ca7891dd2d49f71edd9f
|
|
| BLAKE2b-256 |
edc1305d443b87ece16799e3a296f409abc471ceb4299eabb4b3ff74bb9492c6
|
File details
Details for the file certinspect-0.1.0-py3-none-any.whl.
File metadata
- Download URL: certinspect-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
68201401c83accce4e97e31cf92ea7482ae06d3e9619fae3e5582dbaffcab819
|
|
| MD5 |
fa2c18cf3eb5621e941ecddf3f375dbf
|
|
| BLAKE2b-256 |
c1decadc637bb9c63c497f0514ef04c945381eec54e119a0778bd42eb9eedbb7
|