SubDomains Finder
Home crt.sh Alternative

crt.sh Alternative — Free Subdomain Finder with IPs & Ports

crt.sh is the de facto starting point for Certificate Transparency log search and a foundational input for almost every modern subdomain enumeration workflow. It is also intentionally minimal: a raw certificate index, a stripped-down UI, and a public PostgreSQL database for power users. If you want CT data with IPs, open ports, ASN, and CDN context in a single view — without writing SQL or post-processing JSON — SubDomainsFinder.com aggregates the same CT sources alongside passive DNS and public scan data, then enriches every result. No install, no signup, no rate limits to learn.

Try the free subdomain finder — no install needed

Enter any domain to discover all its subdomains instantly.

TL;DR — when to use which

  • Use SubDomainsFinder when you want CT-log subdomain coverage plus IP, port, ASN, and CDN data in one clean view — and you do not want to babysit timeouts or post-process raw cert entries.
  • Use crt.sh when you need the authoritative raw CT data, direct SQL access for advanced queries, or detailed certificate inspection (issuer, validity, wildcard patterns).
  • Use both for serious recon: start with SubDomainsFinder for the aggregated overview, drop into crt.sh for wildcard cert hunting and certificate-level forensics.

What is crt.sh?

crt.sh is a free Certificate Transparency log search service operated by Sectigo (formerly Comodo CA). Certificate Transparency, defined in RFC 6962, requires every publicly trusted Certificate Authority to log every certificate it issues to one or more public append-only logs. The original goal was security accountability — make it impossible for a CA to misissue a cert without leaving a public trace. A side effect, and the reason crt.sh became essential to security practitioners, is that those logs contain the full Subject Alternative Name list for every cert, which often includes internal hostnames, dev subdomains, staging environments, and entire wildcard patterns that organizations never intended to publish.

crt.sh indexes those logs continuously across every major CA — Let’s Encrypt, DigiCert, Sectigo, Google Trust Services, Cloudflare, Amazon, GlobalSign, and many more. The web UI accepts a search query like %.example.com (where % is the SQL wildcard) and returns every certificate whose SAN or CN matches. The same data is available as JSON via a query parameter, and Sectigo also exposes the underlying PostgreSQL database directly to guest users for advanced queries. That direct database access is rare among free security tools and a significant part of why crt.sh is so respected by power users.

The trade-offs are real. crt.sh returns raw certificate data — one row per logged cert, often with duplicates (the same cert appears in multiple logs), wildcard entries that need cleaning (*.example.com should be normalized for subdomain lists), and no resolution data whatsoever. You get the hostname that appeared in the cert, the issuer, validity dates, and a serial number. You do not get the current IP address, you do not know if the host is even alive today, and you certainly do not know what ports are open. The data is also limited to subdomains that received a publicly logged certificate at some point — hosts behind private CAs, self-signed certs, or single wildcard certs that cover the whole zone are invisible to CT logs by definition.

# JSON query — the bug bounty starter recipe
curl -s 'https://crt.sh/?q=%25.example.com&output=json' \
  | jq -r '.[].name_value' \
  | sed 's/\*\.//g' \
  | sort -u

# Postgres direct query (free public access)
psql -h crt.sh -p 5432 -U guest certwatch -c \
  "SELECT DISTINCT name_value FROM certificate_and_identities \
   WHERE plainto_tsquery('certwatch', 'example.com') @@ identities(certificate) \
   ORDER BY name_value;"

# Wildcard cert hunting — find broad SANs that hint at internal naming
curl -s 'https://crt.sh/?q=%25.example.com&output=json' \
  | jq -r '.[] | select(.name_value | contains("*")) | .name_value' \
  | sort -u

That first one-liner — curl, jq, sed, sort — is in virtually every bug bounty recon repository on GitHub. It is the canonical way to extract subdomains from crt.sh, and it works well. It also produces a flat list of hostnames with no enrichment, which is fine if you are about to feed it into httpx or dnsx, but inconvenient if you just want to understand a target.

Feature comparison

FeatureSubDomainsFindercrt.sh
No installation required
Browser-based UIcrt.sh UI is minimal/raw
Free to use
Subdomain discoveryOnly subdomains that got public certs
Certificate Transparency logscrt.sh is the authoritative source
All public CAs covered
IP addresses per result
Open ports detection
ASN & hosting provider
Deduplicated / cleaned resultscrt.sh returns raw cert entries
API / JSON access
Internal subdomain discovery (via accidental certs)

Yes  No  Partial / limited

Where crt.sh excels

  • Authoritative CT-log coverage. crt.sh ingests directly from the public CT logs operated by Google, Cloudflare, Let’s Encrypt, DigiCert, and others. When a new certificate is issued and logged, crt.sh sees it. There is no intermediate vendor and no sampling — for CT-derived data, this is as close to the source as a free tool gets.
  • Free PostgreSQL access for power users. The ability to run arbitrary SQL against the full CT database is unusual and powerful. You can write queries that answer questions no UI exposes: certs issued in the last 24 hours for a specific organization, wildcard patterns across a portfolio, mis-issued certs flagged by name mismatch. For researchers and CA auditors this is irreplaceable.
  • Internal hostname discovery via accidental certs. Organizations routinely issue publicly trusted certificates for hostnames they never intended to expose externally — dev environments, internal admin panels, staging APIs. Once those names are logged in CT, they are permanently public. crt.sh surfaces them cleanly, and many of the most impactful bug bounty findings start here.
  • Open data, no API quota walls. Unlike commercial DNS intel platforms, crt.sh does not throttle or charge for queries. The JSON endpoint and the database are both free, and you can hit them as often as you need within reasonable rate limits.
  • Use cases beyond subdomains. crt.sh is the standard tool for CA monitoring, certificate issuance auditing, detecting unauthorized issuance against your organization, and verifying that a CT log presence is consistent with your internal certificate inventory. None of that is a subdomain-finder use case, and SubDomainsFinder does not try to compete on it.

Where SubDomainsFinder has the edge

  • Broader coverage than CT alone. Certificate Transparency misses anything that never received a public cert. SubDomainsFinder aggregates CT data with passive DNS, public internet scan data, and other open sources, which fills in subdomains that crt.sh has no way to know about. The CT data is in there — but it is one of many sources, not the only one.
  • IPs, ports, ASN, and CDN/WAF detection in one view. crt.sh tells you a hostname appeared in a certificate. SubDomainsFinder tells you where that hostname resolves today, what ports are publicly responding, which ASN owns the IP, and whether the host sits behind a CDN or WAF. That difference compresses what used to be a multi-tool workflow into a single page load.
  • Polished UI with sortable, filterable results. The crt.sh interface is functional but unrepentantly raw — a wide table of cert metadata that experienced users navigate fluently but newcomers find disorienting. SubDomainsFinder uses a modern interface designed around the question “what subdomains exist and where are they?” rather than “what certs were issued?”
  • Deduplicated and cleaned output. crt.sh returns one row per logged certificate, so the same hostname appears many times across renewals, multiple logs, and wildcard variations. SubDomainsFinder normalizes wildcards, deduplicates names, and presents a clean canonical list. This is the post-processing step that the canonical bug-bounty one-liner exists to perform — and we do it for you.
  • More reliable on large domains. crt.sh queries against domains like google.com, microsoft.com, or amazonaws.com can return millions of cert entries and often time out at the gateway. Because SubDomainsFinder pre-processes and caches CT data, high-volume domains return results without the timeout dance.

Which tool is right for you?

Pentesters & bug bounty

Start with SubDomainsFinder for the consolidated overview — you immediately see which subdomains exist, which are alive, and what is exposed. Then jump to crt.sh for the deeper plays: wildcard cert patterns that hint at internal naming conventions, recently issued certs that suggest new deployments, and certificate metadata for fingerprinting CA usage. Both belong in a serious recon toolkit; they solve different problems at different stages of the engagement.

Blue teams & defenders

SubDomainsFinder is a fast way to audit your own external footprint — including subdomains your team forgot existed. For continuous certificate monitoring (alerting on every new cert issued for your zones, watching for unauthorized issuance), crt.sh combined with a CT-log monitoring service is the right operational layer. Use SubDomainsFinder for periodic reviews and asset discovery, and use CT monitoring for real-time issuance alerting.

Sysadmins & IT teams

If the question is “what subdomains under our domain are publicly visible, and what are they running?” SubDomainsFinder answers it in seconds without a CLI. crt.sh is more useful when you need a certificate inventory — every cert ever issued for your zones, what CA issued it, when it expires. Both are free, both are honest, and they answer adjacent rather than overlapping questions.

Ready to try?

Scan any domain instantly — no install, no signup.

Frequently Asked Questions

Does SubDomainsFinder use crt.sh?

Yes. Certificate Transparency log data is one of the foundational sources we aggregate, and crt.sh is the most widely used public index of those logs. Alongside CT data, we pull from passive DNS datasets, public internet scan data, DNS history sources, and other open intelligence feeds. The goal is to give you a single consolidated view rather than asking you to query a dozen sources and merge results manually. If a subdomain ever had a publicly logged certificate, it should appear in our results — and you will also see IP, port, and ASN data that crt.sh does not provide.

Should I use crt.sh directly or SubDomainsFinder?

Both have a place in a serious recon workflow. crt.sh is the authoritative source for raw Certificate Transparency data — if you are auditing certificate issuance, hunting for misissued certs, or running advanced SQL queries against CT logs (for example, finding all certs containing a specific organization name across all of their domains), crt.sh is irreplaceable. SubDomainsFinder is the right starting point when you want aggregated subdomain results with IP and port enrichment without writing SQL or parsing JSON. Many practitioners use SubDomainsFinder for the initial overview and drop into crt.sh for cert-specific deep dives.

Why does crt.sh time out on big domains?

crt.sh queries are executed against a live PostgreSQL database that indexes every certificate from every public CT log — billions of rows. For small or medium domains, queries return in seconds. For high-volume domains like google.com, microsoft.com, or amazonaws.com, the query planner has to scan a much larger working set, and on busy days the request can exceed the gateway timeout. The crt.sh maintainers are open about this constraint; it is the cost of running a free public service against an enormous dataset. SubDomainsFinder caches and pre-processes CT data, which is why we can return results for large domains without timing out.

Can I find internal subdomains with crt.sh?

Yes — and this is one of crt.sh's most valuable contributions to bug bounty work. When organizations issue publicly trusted certificates for internal hostnames (dev.internal.example.com, staging-api.example.com, jenkins.corp.example.com), those hostnames are logged in CT and become permanently discoverable. It is one of the most common ways otherwise unreachable internal infrastructure gets surfaced. SubDomainsFinder includes the same CT-derived data, but going directly to crt.sh can be useful when you want to inspect the exact certificate, see the issuing CA, and check the validity period.

Does crt.sh show subdomains without certificates?

No. crt.sh's entire dataset is derived from Certificate Transparency logs, which means it only knows about hostnames that appear in publicly issued certificates — Subject Alternative Names (SANs) and Common Names (CNs). Subdomains that never received a public cert (internal-only services, hosts behind a single wildcard cert, or services using self-signed or private CA certs) are invisible to crt.sh. This is the main reason CT logs alone are insufficient for thorough enumeration: you also need passive DNS, brute force, and other sources to catch the gaps. SubDomainsFinder aggregates those additional sources alongside CT data.

What's the best way to combine crt.sh and SubDomainsFinder?

Start with SubDomainsFinder for the consolidated view — you immediately see subdomains plus IPs, ports, and ASN context, which lets you prioritize what to investigate further. Then use crt.sh for two specific follow-ups: first, wildcard cert hunting — searching for *.example.com certs that hint at internal naming conventions; second, historical cert investigation — looking at when subdomains first appeared in CT logs (useful for understanding when an asset was deployed). For automated pipelines, you can hit crt.sh's JSON endpoint or query its public PostgreSQL directly. For interactive recon, SubDomainsFinder gets you to actionable results faster.

Also compare