
Strumento di monitoraggio Certificate Transparency (CT) ad alte prestazioni scritto in Rust. Flusso in tempo reale dei certificati SSL/TLS appena emessi dai log CT. Implementazione in Rust di certstream-server con prestazioni ed efficienza di memoria migliorate.
Un server Certstream scritto in Rust. Monitora i log di Certificate Transparency (CT) e trasmette in streaming i certificati SSL/TLS appena emessi tramite WebSocket e Server-Sent Events (SSE).
Certstream aggrega i certificati dai log di Certificate Transparency e li trasmette in streaming in tempo reale. Questa implementazione è compatibile con i client Certstream esistenti e supporta sia i log RFC 6962 che quelli static-CT.
Caratteristiche principali:
La documentazione completa dell'API, esempi di client, riferimento alla configurazione e note sul self-hosting sono disponibili su certstream.dev.
Vuoi lo stream senza eseguire un server? È disponibile una CertStream API gratuita ospitata su wss://api.certstream.dev/.
I binari Linux precompilati sono build statiche musl. Gli archivi di release includono i checksum SHA-256.
# Linux and macOS, x86_64 and arm64; verifies the checksum before installing
curl -fsSL https://raw.githubusercontent.com/reloading01/certstream-server-rust/main/install.sh | sh
# Homebrew
brew install reloading01/tap/certstream-server-rust
# Cargo
cargo install certstream-server-rust
# Docker
docker run -d -p 8080:8080 ghcr.io/reloading01/certstream-server-rust:latest
I repository apt e rpm firmati, Docker Compose e le opzioni dell'installer sono descritti nella documentazione per il self-hosting.
Non è richiesta alcuna configurazione. Il server individua automaticamente i log CT, espone WebSocket sulla porta 8080 e mantiene la propria posizione, così i riavvii riprendono invece di riprodurre la cronologia dei log.
Tutte le impostazioni sono opzionali. Le variabili d'ambiente hanno la precedenza sui valori YAML, e i valori YAML hanno la precedenza sui valori predefiniti integrati. Ogni variabile e chiave YAML è elencata nel riferimento alla configurazione.
| Variabile | Predefinito | Descrizione |
|---|---|---|
CERTSTREAM_PORT | 8080 | Porta HTTP/WebSocket |
CERTSTREAM_SSE_ENABLED | false | Abilita SSE |
CERTSTREAM_API_ENABLED | false | Abilita la REST API |
CERTSTREAM_AUTH_ENABLED | false | Richiede bearer token (CERTSTREAM_AUTH_TOKENS) |
CERTSTREAM_CONNECTION_LIMIT_ENABLED | false | Abilita i limiti di connessione globali e per IP |
CERTSTREAM_CT_LOG_STATE_FILE | certstream_state.json | File della posizione dei log CT |
| Endpoint | Stream |
|---|---|
ws://host:8080/ | Lite |
ws://host:8080/full-stream | Dati completi con DER e catena |
ws://host:8080/domains-only | Solo nomi di dominio |
http://host:8080/sse | SSE, quando abilitato (?stream=full o ?stream=domains) |
/health, /health/deep, /metrics | Controlli di stato e metriche Prometheus |
/api/stats, /api/logs, /api/cert/{hash} | REST API, quando abilitata |
Gli endpoint di streaming accettano i parametri di query domain e issuer per il filtraggio lato server. Consulta la documentazione per i formati dei messaggi, l'output della versione 2 e l'esportazione per intervalli.
Consulta RELEASE_NOTES.md per la cronologia delle versioni.
Segnalazioni di bug, anomalie nei log CT e pull request sono benvenute. Consulta CONTRIBUTING.md per scoprire come compilare, testare e inviare una modifica.
Mettere una stella al repository o condividerlo aiuta il progetto a farsi trovare. Puoi anche sponsorizzarlo su GitHub.
MIT. Consulta LICENSE.