
Rustで書かれた高性能なCertificate Transparency(CT)監視ツール。CTログから新たに発行されたSSL/TLS証明書をリアルタイムでストリーミングします。certstream-serverのRust実装であり、パフォーマンスとメモリ効率が向上しています。
Rust で書かれた Certstream サーバーです。Certificate Transparency (CT) ログを監視し、新しく発行された SSL/TLS 証明書を WebSocket および Server-Sent Events (SSE) 経由でストリーミングします。
Certstream は Certificate Transparency ログから証明書を集約し、リアルタイムでストリーミングします。この実装は既存の 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 | ベアラートークンを要求(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 を参照してください。