
Hochleistungsfähiges Tool zur Überwachung der Certificate Transparency (CT), geschrieben in Rust. Echtzeit-Stream neu ausgestellter SSL/TLS-Zertifikate aus CT-Logs. Rust-Implementierung von certstream-server mit verbesserter Leistung und Speichereffizienz.
Ein in Rust geschriebener Certstream-Server. Er überwacht Certificate-Transparency-(CT-)Logs und streamt neu ausgestellte SSL/TLS-Zertifikate über WebSocket und Server-Sent Events (SSE).
Certstream aggregiert Zertifikate aus Certificate-Transparency-Logs und streamt sie in Echtzeit. Diese Implementierung ist mit bestehenden Certstream-Clients kompatibel und unterstützt sowohl RFC-6962- als auch Static-CT-Logs.
Wichtige Funktionen:
Die vollständige API-Dokumentation, Client-Beispiele, Konfigurationsreferenz und Hinweise zum Selbsthosting finden Sie unter certstream.dev.
Sie möchten den Stream nutzen, ohne einen Server zu betreiben? Es gibt eine kostenlose gehostete CertStream-API unter wss://api.certstream.dev/.
Vorgefertigte Linux-Binärdateien sind statische musl-Builds. Release-Archive enthalten SHA-256-Prüfsummen.
# 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
Signierte apt- und rpm-Repositories, Docker Compose und Installer-Optionen sind in der Self-Hosting-Dokumentation beschrieben.
Es ist keine Konfiguration erforderlich. Der Server entdeckt CT-Logs automatisch, stellt WebSocket auf Port 8080 bereit und speichert seine Position, sodass Neustarts fortgesetzt werden, anstatt die Log-Historie erneut abzuspielen.
Alle Einstellungen sind optional. Umgebungsvariablen überschreiben YAML-Werte, und YAML-Werte überschreiben die integrierten Standardwerte. Jede Variable und jeder YAML-Schlüssel ist in der Konfigurationsreferenz aufgeführt.
| Variable | Standard | Beschreibung |
|---|---|---|
CERTSTREAM_PORT | 8080 | HTTP/WebSocket-Port |
CERTSTREAM_SSE_ENABLED | false | SSE aktivieren |
CERTSTREAM_API_ENABLED | false | REST-API aktivieren |
CERTSTREAM_AUTH_ENABLED | false | Bearer-Tokens erfordern (CERTSTREAM_AUTH_TOKENS) |
CERTSTREAM_CONNECTION_LIMIT_ENABLED | false | Globale und per-IP-Verbindungslimits aktivieren |
CERTSTREAM_CT_LOG_STATE_FILE | certstream_state.json | Datei für die CT-Log-Position |
| Endpunkt | Stream |
|---|---|
ws://host:8080/ | Lite |
ws://host:8080/full-stream | Vollständige Daten mit DER und Chain |
ws://host:8080/domains-only | Nur Domainnamen |
http://host:8080/sse | SSE, wenn aktiviert (?stream=full oder ?stream=domains) |
/health, /health/deep, /metrics | Health-Checks und Prometheus-Metriken |
/api/stats, /api/logs, /api/cert/{hash} | REST-API, wenn aktiviert |
Streaming-Endpunkte akzeptieren die Query-Parameter domain und issuer für serverseitige Filterung. Siehe die Dokumentation für Nachrichtenformate, Version-2-Ausgabe und Range-Export.
Siehe RELEASE_NOTES.md für die Versionshistorie.
Fehlerberichte, CT-Log-Eigenheiten und Pull Requests sind willkommen. Siehe CONTRIBUTING.md für Informationen zum Erstellen, Testen und Einreichen einer Änderung.
Ein Star für das Repository oder das Teilen hilft dem Projekt, gefunden zu werden. Du kannst es auch auf GitHub sponsern.
MIT. Siehe LICENSE.