用 Rust 编写的高性能证书透明度(CT)监控工具。实时流式获取 CT 日志中新签发的 SSL/TLS 证书。certstream-server 的 Rust 实现,具有更优的性能和内存效率。
一个用 Rust 编写的 Certstream 服务器。它监控证书透明度(CT)日志,并通过 WebSocket 和服务器发送事件(SSE)流式传输新签发的 SSL/TLS 证书。
Certstream 从证书透明度日志中聚合证书并实时流式传输。此实现与现有 Certstream 客户端兼容,并同时支持 RFC 6962 和 static-CT 日志。
主要特性:
完整的 API 文档、客户端示例、配置参考和自托管说明位于 certstream.dev。
想要不运行服务器就能获取流?在 wss://api.certstream.dev/ 有一个免费的托管 CertStream API。
预构建的 Linux 二进制文件是静态 musl 构建。发布归档包含 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
已签名的 apt 和 rpm 仓库、Docker Compose 以及安装程序选项详见自托管文档。
无需任何配置。服务器会自动发现 CT 日志,在端口 8080 上提供 WebSocket 服务,并持久化其位置,因此重启后会从断点继续,而不是重放日志历史。
所有设置均为可选。环境变量会覆盖 YAML 值,YAML 值会覆盖内置默认值。所有变量和 YAML 键均列在配置参考中。
| 变量 | 默认值 | 描述 |
|---|---|---|
CERTSTREAM_PORT | 8080 | HTTP/WebSocket 端口 |
CERTSTREAM_SSE_ENABLED | false | 启用 SSE |
CERTSTREAM_API_ENABLED | false | 启用 REST API |
CERTSTREAM_AUTH_ENABLED | false | 要求 bearer 令牌(CERTSTREAM_AUTH_TOKENS) |
CERTSTREAM_CONNECTION_LIMIT_ENABLED | false | 启用全局和按 IP 的连接限制 |
CERTSTREAM_CT_LOG_STATE_FILE | certstream_state.json | CT 日志位置文件 |
| 端点 | 流 |
|---|---|
ws://host:8080/ | Lite |
ws://host:8080/full-stream | 包含 DER 和链的完整数据 |
ws://host:8080/domains-only | 仅域名 |
http://host:8080/sse | SSE,启用时可用(?stream=full 或 ?stream=domains) |
/health、/health/deep、/metrics | 健康检查和 Prometheus 指标 |
/api/stats、/api/logs、/api/cert/{hash} | REST API,启用时可用 |
流式端点接受 domain 和 issuer 查询参数,用于服务端过滤。有关消息格式、版本 2 输出和范围导出,请参阅文档。
版本历史请参阅 RELEASE_NOTES.md。
欢迎提交缺陷报告、CT 日志异常情况和拉取请求。有关如何构建、测试和提交更改,请参阅 CONTRIBUTING.md。
为仓库加星或分享它有助于让更多人发现该项目。你也可以在 GitHub 上赞助它。
MIT。请参阅 LICENSE。