
Rust로 작성된 고성능 인증서 투명성(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를 참조하세요.