Outil de surveillance de Certificate Transparency (CT) hautes performances écrit en Rust. Flux en temps réel des certificats SSL/TLS nouvellement émis à partir des journaux CT. Implémentation en Rust de certstream-server avec des performances et une efficacité mémoire améliorées.
Un serveur Certstream écrit en Rust. Il surveille les journaux de Certificate Transparency (CT) et diffuse les certificats SSL/TLS nouvellement émis via WebSocket et Server-Sent Events (SSE).
Certstream agrège les certificats issus des journaux de Certificate Transparency et les diffuse en temps réel. Cette implémentation est compatible avec les clients Certstream existants et prend en charge les journaux RFC 6962 ainsi que les journaux static-CT.
Fonctionnalités principales :
La documentation complète de l'API, des exemples de clients, la référence de configuration et les notes d'auto-hébergement sont disponibles sur certstream.dev.
Vous voulez le flux sans exécuter de serveur ? Une API CertStream hébergée gratuite est disponible à l'adresse wss://api.certstream.dev/.
Les binaires Linux précompilés sont des builds statiques musl. Les archives de version incluent des sommes de contrôle 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
Les dépôts apt et rpm signés, Docker Compose et les options d'installation sont couverts dans la documentation d'auto-hébergement.
Aucune configuration n'est requise. Le serveur découvre automatiquement les journaux CT, sert le WebSocket sur le port 8080 et persiste sa position afin que les redémarrages reprennent au lieu de rejouer l'historique des journaux.
Tous les paramètres sont facultatifs. Les variables d'environnement remplacent les valeurs YAML, et les valeurs YAML remplacent les valeurs par défaut intégrées. Chaque variable et clé YAML est répertoriée dans la référence de configuration.
| Variable | Valeur par défaut | Description |
|---|---|---|
CERTSTREAM_PORT | 8080 | Port HTTP/WebSocket |
CERTSTREAM_SSE_ENABLED | false | Activer SSE |
CERTSTREAM_API_ENABLED | false | Activer l'API REST |
CERTSTREAM_AUTH_ENABLED | false | Exiger des jetons bearer (CERTSTREAM_AUTH_TOKENS) |
CERTSTREAM_CONNECTION_LIMIT_ENABLED | false | Activer les limites de connexion globales et par IP |
CERTSTREAM_CT_LOG_STATE_FILE | certstream_state.json | Fichier de position des journaux CT |
| Point de terminaison | Flux |
|---|---|
ws://host:8080/ | Lite |
ws://host:8080/full-stream | Données complètes avec DER et chaîne |
ws://host:8080/domains-only | Noms de domaine uniquement |
http://host:8080/sse | SSE, lorsqu'activé (?stream=full ou ?stream=domains) |
/health, /health/deep, /metrics | Vérifications de santé et métriques Prometheus |
/api/stats, /api/logs, /api/cert/{hash} | API REST, lorsqu'activée |
Les points de terminaison de streaming acceptent les paramètres de requête domain et issuer pour le filtrage côté serveur. Consultez la documentation pour les formats de messages, la sortie version 2 et l'export par plage.
Consultez RELEASE_NOTES.md pour l'historique des versions.
Les rapports de bugs, les particularités des journaux CT et les pull requests sont les bienvenus. Consultez CONTRIBUTING.md pour savoir comment compiler, tester et soumettre une modification.
Mettre une étoile au dépôt ou le partager aide le projet à être découvert. Vous pouvez également le sponsoriser sur GitHub.
MIT. Consultez LICENSE.