
Herramienta de monitoreo de Certificate Transparency (CT) de alto rendimiento escrita en Rust. Flujo en tiempo real de certificados SSL/TLS recién emitidos desde los registros de CT. Implementación en Rust de certstream-server con rendimiento y eficiencia de memoria mejorados.
Un servidor Certstream escrito en Rust. Monitoriza los registros de Certificate Transparency (CT) y transmite los certificados SSL/TLS recién emitidos a través de WebSocket y Server-Sent Events (SSE).
Certstream agrega certificados de los registros de Certificate Transparency y los transmite en tiempo real. Esta implementación es compatible con los clientes Certstream existentes y admite tanto registros RFC 6962 como registros static-CT.
Características principales:
La documentación completa de la API, ejemplos de clientes, referencia de configuración y notas de autoalojamiento están en certstream.dev.
¿Quieres el flujo sin ejecutar un servidor? Hay una API CertStream gratuita alojada en wss://api.certstream.dev/.
Los binarios de Linux precompilados son compilaciones estáticas de musl. Los archivos de publicación incluyen sumas de verificación 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
Los repositorios apt y rpm firmados, Docker Compose y las opciones del instalador se describen en la documentación de autoalojamiento.
No se requiere configuración. El servidor descubre los registros CT automáticamente, sirve WebSocket en el puerto 8080 y persiste su posición para que los reinicios se reanuden en lugar de reproducir el historial del registro.
Todas las opciones son opcionales. Las variables de entorno anulan los valores de YAML, y los valores de YAML anulan los valores predeterminados integrados. Cada variable y clave de YAML se enumera en la referencia de configuración.
| Variable | Predeterminado | Descripción |
|---|---|---|
CERTSTREAM_PORT | 8080 | Puerto HTTP/WebSocket |
CERTSTREAM_SSE_ENABLED | false | Habilitar SSE |
CERTSTREAM_API_ENABLED | false | Habilitar la API REST |
CERTSTREAM_AUTH_ENABLED | false | Requerir tokens bearer (CERTSTREAM_AUTH_TOKENS) |
CERTSTREAM_CONNECTION_LIMIT_ENABLED | false | Habilitar límites de conexión globales y por IP |
CERTSTREAM_CT_LOG_STATE_FILE | certstream_state.json | Archivo de posición del registro CT |
| Endpoint | Flujo |
|---|---|
ws://host:8080/ | Lite |
ws://host:8080/full-stream | Datos completos con DER y cadena |
ws://host:8080/domains-only | Solo nombres de dominio |
http://host:8080/sse | SSE, cuando está habilitado (?stream=full o ?stream=domains) |
/health, /health/deep, /metrics | Comprobaciones de estado y métricas de Prometheus |
/api/stats, /api/logs, /api/cert/{hash} | API REST, cuando está habilitada |
Los endpoints de streaming aceptan los parámetros de consulta domain e issuer para el filtrado del lado del servidor. Consulte la documentación para los formatos de mensaje, la salida de la versión 2 y la exportación por rangos.
Consulte RELEASE_NOTES.md para el historial de versiones.
Los informes de errores, las peculiaridades de los registros CT y las pull requests son bienvenidos. Consulte CONTRIBUTING.md para saber cómo compilar, probar y enviar un cambio.
Dar una estrella al repositorio o compartirlo ayuda a que el proyecto se descubra. También puede patrocinarlo en GitHub.
MIT. Consulte LICENSE.