Certificate Transparency (CT) logs are public, append-only records of every TLS certificate issued by participating Certificate Authorities. Monitoring these logs in real time is critical for detecting rogue certificates, phishing domains, and unauthorized certificate issuance targeting your organization’s domains.
This guide compares three self-hosted Certificate Transparency monitoring tools — Certstream Server, SSLMate Certspotter, and ct_monitor — with Docker Compose configs, alerting setups, and deployment recommendations.
For complementary reading, see our TLS certificate automation guide for managing your own certificate lifecycle, and our SSL/TLS scanning tools comparison for auditing certificate configurations.
Why Monitor Certificate Transparency Logs
Every time a trusted CA issues a TLS certificate, it is required to publish that certificate to one or more CT logs. These logs are publicly accessible and cryptographically verifiable, creating an auditable trail of all certificates on the web.
Self-hosted CT monitoring gives you:
- Rogue certificate detection — Identify certificates issued for your domains without your knowledge
- Phishing domain discovery — Detect typosquatting and homograph attack domains as soon as certificates are issued
- Subdomain enumeration — Discover all subdomains of your organization from certificate subject alternative names (SANs)
- Compliance auditing — Verify that all certificates for your domains follow internal naming conventions and security policies
- Brand protection — Monitor for certificate issuance on domains that impersonate your brand
While public CT log viewers exist, self-hosted monitoring allows you to run custom filtering, alerting, and integration pipelines that match your organization’s specific needs.
How Certificate Transparency Works
Certificate Transparency was proposed by Google in 2013 and is now mandated by all major browsers. The ecosystem has three key components:
- CT Logs — Append-only, cryptographically verifiable data structures (Merkle trees) that store certificate records
- Certificate Authorities — Submit newly issued certificates to CT logs before they can be trusted by browsers
- Monitors — Continuously poll CT logs for new entries and filter them based on domain patterns
The CT ecosystem includes logs operated by Google, Cloudflare, Let’s Encrypt, DigiCert, and others. A monitor must connect to multiple logs to ensure comprehensive coverage, as CAs may submit to different log sets.
| |
Tools Compared at a Glance
| Feature | Certstream Server | SSLMate Certspotter | ct_monitor |
|---|---|---|---|
| GitHub Stars | 343 | 1,138 | 453 |
| Language | Elixir | Go | Go |
| Last Updated | Feb 2026 | Jan 2026 | Apr 2026 |
| Docker Support | Official image | Official image | Official image |
| CT Log Sources | Multiple (configurable) | Google CT Logs | crt.sh API |
| Streaming Mode | WebSocket + TCP | Polling + Webhook | Polling |
| Domain Filtering | Regex patterns | Domain list | Domain list |
| Alerting | Via webhooks | Via webhooks | Via stdout/logging |
| Resource Usage | Low (~100MB RAM) | Low (~50MB RAM) | Low (~30MB RAM) |
| Best For | Real-time streaming pipeline | Lightweight domain monitoring | crt.sh-based monitoring |
Certstream Server: Real-Time CT Log Streaming
Certstream Server (343 stars, last updated February 2026) is an Elixir-based service that aggregates Certificate Transparency logs and streams new certificate entries in real time via WebSocket and TCP connections.
Architecture
Certstream connects to multiple CT log sources simultaneously, deduplicates entries, and broadcasts them to connected clients. Clients can subscribe to specific domain patterns using regex filters, reducing bandwidth and processing requirements.
Docker Compose Deployment
| |
Client Library Usage
Certstream provides client libraries for Python, Node.js, and Ruby. The Python client is the most widely used:
| |
| |
SSLMate Certspotter: Lightweight CT Log Monitor
SSLMate Certspotter (1,138 stars, last updated January 2026) is a Go-based CT log monitor developed by SSLMate. It watches CT logs for certificates matching a configured list of domains and sends webhook notifications when matches are found.
Key Features
- Monitors Google’s CT logs by default
- Supports domain-based filtering via a JSON configuration file
- Sends webhook alerts on certificate matches
- Lightweight binary (~15MB) with minimal dependencies
- Can run as a systemd service or Docker container
Docker Compose Deployment
| |
Configuration file (config.json):
| |
Standalone Installation
| |
ct_monitor: crt.sh-Based Certificate Monitoring
ct_monitor (453 stars, last updated April 2026) is a Go-based CT log monitor that queries the crt.sh API — a public search interface for Certificate Transparency logs operated by Sectigo. Unlike streaming tools, ct_monitor polls the crt.sh API at configurable intervals.
Key Features
- Queries crt.sh API instead of connecting to raw CT logs
- Simpler architecture — no need to maintain CT log connections
- Lower resource requirements — runs on a single API query loop
- Ideal for monitoring a small set of domains without real-time streaming needs
- Actively maintained (updated April 2026)
Docker Compose Deployment
| |
Domain list file (config/domains.txt):
| |
Installation from Source
| |
Setting Up Alerting with Prometheus and Alertmanager
Regardless of which CT monitoring tool you choose, integrating with Prometheus and Alertmanager provides reliable, configurable alerting. Here’s a reference setup:
| |
Prometheus configuration (prometheus.yml):
| |
Alertmanager configuration (alertmanager.yml):
| |
Choosing the Right Tool
Choose Certstream Server if:
- You need real-time streaming of all CT log entries
- You want to build a custom filtering pipeline on top of raw certificate data
- You have the infrastructure to run an Elixir service with WebSocket clients
- You want to monitor multiple domain patterns with regex flexibility
Choose SSLMate Certspotter if:
- You need a lightweight, single-binary solution
- Your primary goal is monitoring a specific set of domains
- You want simple webhook-based alerting
- You prefer Go-based tools with minimal dependencies
Choose ct_monitor if:
- You want the simplest deployment — just poll the crt.sh API
- You have a small number of domains to monitor
- You don’t need sub-second real-time detection
- You prefer actively maintained, regularly updated software
For organizations monitoring hundreds or thousands of domains, Certstream Server’s streaming architecture provides the most scalable foundation. For small teams monitoring a handful of critical domains, Certspotter or ct_monitor offer simpler, lighter-weight alternatives.
FAQ
What is Certificate Transparency and why does it matter?
Certificate Transparency (CT) is a framework that makes TLS certificate issuance publicly auditable. Every certificate issued by a trusted CA must be logged in a public CT log before browsers will trust it. This prevents rogue CAs from secretly issuing certificates for domains they don’t own, and allows domain owners to detect unauthorized certificates immediately.
How fast can I detect a rogue certificate with self-hosted monitoring?
With Certstream Server’s WebSocket streaming, you can detect new certificates within seconds of them being submitted to CT logs. Certspotter and ct_monitor use polling approaches, which typically detect new certificates within 1-5 minutes depending on their polling interval. The actual CT log submission delay from the CA is usually under 60 seconds.
Do I need to monitor all CT logs or just some of them?
You should monitor multiple CT logs because CAs submit to different log sets. Google operates several logs, Cloudflare operates Nimbus logs, and various other operators run their own. Certstream Server can connect to multiple logs simultaneously. Certspotter monitors Google’s CT log ecosystem by default. ct_monitor uses crt.sh, which aggregates entries from many CT logs into a single queryable database.
Can I use CT monitoring to discover all subdomains of my organization?
Yes. Certificate Subject Alternative Names (SANs) often reveal subdomains that aren’t publicly listed in DNS. By filtering CT log entries for your root domain, you can discover all subdomains that have received TLS certificates. This is a common reconnaissance technique used by security teams for asset discovery.
Is CT monitoring a replacement for certificate expiry monitoring?
No — these serve different purposes. CT monitoring detects new certificates being issued (rogue certificates, phishing domains). Certificate expiry monitoring tracks when your existing certificates are about to expire to prevent outages. Both are essential for a complete TLS security posture. For certificate expiry monitoring, consider tools like x509-certificate-exporter or Certimate.
How do I set up alerts for CT monitoring?
The most common approach is to configure a webhook receiver that triggers notifications via Slack, email, PagerDuty, or other alerting channels. Certstream Server’s client libraries support custom callbacks where you can add notification logic. Certspotter has built-in webhook support. For production environments, integrating with Prometheus Alertmanager provides configurable alert routing, deduplication, and escalation policies.
Can CT monitoring detect wildcard certificates issued for my domain?
Yes. When a wildcard certificate (e.g., *.example.com) is issued, it appears in CT logs with the wildcard domain in the Subject Alternative Names list. Your monitoring tool’s domain filter will match it, and you’ll receive an alert. This is particularly useful for detecting unauthorized wildcard certificates that could be used to impersonate any subdomain.