
Ferramenta de monitoramento de Certificate Transparency (CT) de alto desempenho escrita em Rust. Fluxo em tempo real de certificados SSL/TLS recém-emitidos a partir dos logs de CT. Implementação em Rust do certstream-server com desempenho e eficiência de memória aprimorados.
Um servidor Certstream escrito em Rust. Ele monitora os logs de Certificate Transparency (CT) e transmite certificados SSL/TLS recém-emitidos via WebSocket e Server-Sent Events (SSE).
O Certstream agrega certificados dos logs de Certificate Transparency e os transmite em tempo real. Esta implementação é compatível com clientes Certstream existentes e suporta tanto logs RFC 6962 quanto static-CT.
Principais recursos:
A documentação completa da API, exemplos de clientes, referência de configuração e notas de auto-hospedagem estão em certstream.dev.
Quer o stream sem executar um servidor? Há uma API CertStream gratuita hospedada em wss://api.certstream.dev/.
Os binários Linux pré-compilados são builds estáticos musl. Os arquivos de release incluem checksums 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
Repositórios apt e rpm assinados, Docker Compose e opções de instalador estão cobertos na documentação de auto-hospedagem.
Nenhuma configuração é necessária. O servidor descobre logs de CT automaticamente, serve WebSocket na porta 8080 e persiste sua posição para que as reinicializações retomem em vez de reproduzir o histórico do log.
Todas as configurações são opcionais. Variáveis de ambiente substituem valores YAML, e valores YAML substituem os padrões internos. Cada variável e chave YAML está listada na referência de configuração.
| Variável | Padrão | Descrição |
|---|---|---|
CERTSTREAM_PORT | 8080 | Porta HTTP/WebSocket |
CERTSTREAM_SSE_ENABLED | false | Habilita SSE |
CERTSTREAM_API_ENABLED | false | Habilita a API REST |
CERTSTREAM_AUTH_ENABLED | false | Exige bearer tokens (CERTSTREAM_AUTH_TOKENS) |
CERTSTREAM_CONNECTION_LIMIT_ENABLED | false | Habilita limites de conexão globais e por IP |
CERTSTREAM_CT_LOG_STATE_FILE | certstream_state.json | Arquivo de posição do log de CT |
| Endpoint | Stream |
|---|---|
ws://host:8080/ | Lite |
ws://host:8080/full-stream | Dados completos com DER e cadeia |
ws://host:8080/domains-only | Apenas nomes de domínio |
http://host:8080/sse | SSE, quando habilitado (?stream=full ou ?stream=domains) |
/health, /health/deep, /metrics | Verificações de integridade e métricas Prometheus |
/api/stats, /api/logs, /api/cert/{hash} | API REST, quando habilitada |
Os endpoints de streaming aceitam os parâmetros de consulta domain e issuer para filtragem no lado do servidor. Consulte a documentação para formatos de mensagem, saída da versão 2 e exportação por intervalo.
Consulte RELEASE_NOTES.md para o histórico de versões.
Relatórios de bugs, peculiaridades de logs de CT e pull requests são bem-vindos. Consulte CONTRIBUTING.md para saber como compilar, testar e enviar uma alteração.
Dar uma estrela ao repositório ou compartilhá-lo ajuda o projeto a ser encontrado. Você também pode patrociná-lo no GitHub.
MIT. Consulte LICENSE.