Skip to main content

    What Is Certificate Transparency? CT Logs and SCTs Explained

    Certificate Transparency logs every public SSL certificate so mis-issuance can't hide. How CT logs, SCTs and browser enforcement work in 2026.

    MS
    My-SSL Team
    ·
    14 min read
    ·
    Published August 1, 2026
    ·
    Last updated August 1, 2026

    The short answer

    Certificate Transparency (CT) is a public, append-only record of every SSL/TLS certificate issued by a publicly trusted Certificate Authority. Before a certificate works in a browser, the CA submits it to independent logs, which return signed receipts called SCTs that are then embedded in the certificate itself. As of August 2026, Chrome requires SCTs from two distinct logs for certificates valid 180 days or less and three for longer ones, and Firefox has enforced CT on desktop since version 135 — so an unlogged public certificate simply fails to load. CT doesn't encrypt anything and doesn't prevent mis-issuance; it makes issuance impossible to do in secret.

    How a certificate is submitted to Certificate Transparency logs and receives SCTs before issuanceA left-to-right flow. The Certificate Authority first builds a precertificate and submits it to several independent, append-only CT logs run by different operators. Each log returns a signed receipt called an SCT. The CA then embeds those SCTs into the final certificate, highlighted in gold, and issues it. When a visitor connects, the browser checks the embedded SCTs and refuses the certificate if acceptable ones are missing.How a certificate gets logged before it is issuedCA builds aprecertificatenot yet usableCT log · operator 1CT log · operator 2CT log · operator 3independent, append-only, publicSCTsCertificate issuedwith SCTs insidenothing to configureBrowserchecks SCTsor rejectsThe logging happens before issuance — which is why the receipts can travel inside the certificate.
    The order is the whole trick. Because the CA logs a draft of the certificate first, the log receipts are already sealed inside the certificate you install — no CT configuration ever reaches your server.

    What Certificate Transparency is

    Certificate Transparency is an open framework — first specified by Google engineers in RFC 6962 in 2013, and updated as version 2.0 in RFC 9162 — that creates a public, tamper-evident record of the SSL/TLS certificates issued by publicly trusted Certificate Authorities. The idea is almost disarmingly simple: every certificate meant to be trusted by browsers should be written into a log that anyone can inspect, and that no one can quietly rewrite.

    It helps to be clear about what CT is not. It doesn't encrypt traffic, it isn't a new kind of certificate, and it doesn't change the TLS handshake that secures your connection. CT operates one layer up, at the level of governance: it's an accountability system for the act of issuing certificates. A certificate still does exactly what it always did; CT just guarantees that its creation happened in the open.

    The problem CT was built to solve

    The whole public-key infrastructure depends on browsers trusting a set of Certificate Authorities to vouch for who owns which domain. That trust is powerful — and, before CT, almost entirely unchecked. Any trusted CA could issue a certificate for example.com, and there was no central, public place to notice it had done so. The legitimate owner of the domain had no reliable way to discover a certificate they hadn't requested.

    That gap wasn't theoretical. High-profile cases of CAs issuing certificates they never should have — through compromise, error, or being deceived — showed that a single misbehaving or breached CA could be used to impersonate any site on the web, silently. The victim couldn't see it; the attacker's certificate looked perfectly valid to browsers. The missing ingredient wasn't stronger cryptography — it was visibility.

    The core insight: you can't prevent every mistake a CA might make, but if every certificate must be published where the world can see it, mistakes and abuse can't stay hidden — and anything that can't stay hidden becomes far less useful to an attacker and far easier to hold a CA accountable for. CT trades secrecy for scrutiny.

    How CT logs work

    A CT log is a network service that does one job: it accepts certificates and records them in an order that can never be secretly altered. Several independent organizations operate these logs — Google, Cloudflare, DigiCert, Let's Encrypt and others run their own — so the record doesn't depend on any single party. Three properties are what make a log worth trusting.

    Append-only

    Once a certificate is added, it can never be removed or edited. There's no "delete" — which is exactly what you want from an audit trail. A CA can't log a certificate and later make it disappear.

    Cryptographically verifiable

    Logs are built on a Merkle tree — a hash structure where the single value at the top depends on every entry beneath it. That lets anyone prove a specific certificate is in the log, and prove the log hasn't been retroactively rewritten, without downloading the whole thing.

    Readable by anyone

    There's no privileged access — the transparency is the point. Domain owners, researchers, and browsers all read the same public record, and none of them needs the log operator's permission to do it.

    Merkle tree structure that makes a CT log tamper-evidentA hash tree with four logged certificates at the bottom. Each pair of certificates is hashed into an intermediate hash, and the two intermediate hashes combine into a single root hash at the top, highlighted in gold. Because every entry feeds the root, altering or removing any one certificate changes the root hash and makes the tampering provable to anyone watching the log.Why a log cannot quietly rewrite its own historyRoot hashHash of A + BHash of C + DCertificate ACertificate BCertificate CCertificate DChange one leaf and the root changes — so removing an entry is as visible as adding one.
    This structure is what lets a browser or auditor verify one certificate's presence without downloading the log, and it's why "delete the evidence" isn't an option for a log operator.

    When a log accepts a certificate, it commits to publishing that entry within a fixed window called the Maximum Merge Delay, commonly 24 hours. That promise — backed by the log's signature — is what makes the next piece, the SCT, meaningful.

    SCTs and precertificates

    A Signed Certificate Timestamp (SCT) is the receipt a log hands back when it accepts a certificate. It's a small, signed statement that says, in effect: I, this log, received this certificate at this time and will publish it within the Maximum Merge Delay. Because it's signed by the log, it can't be forged. Browsers treat SCTs as the proof that a certificate is properly logged — no acceptable SCTs, no trust.

    There's a chicken-and-egg wrinkle, though. Browsers prefer the SCT to live inside the certificate, but you can't embed a log's receipt into a certificate before that certificate exists. CT solves this with a precertificate: the CA creates a special preliminary version of the certificate, submits it to the logs, collects the SCTs, and then bakes those SCTs into the final certificate it issues. By the time you receive your certificate, the receipts are already inside it.

    How an SCT reaches the browser

    • Embedded in the certificate — the overwhelmingly common method, arranged via the precertificate before issuance. The SCTs travel inside the certificate, so no server configuration is needed.
    • TLS extension — the server presents SCTs during the handshake. Most TLS servers don't support this, which is precisely why CAs embed instead.
    • OCSP stapling — historically a third route, delivered alongside a stapled OCSP response. Chrome accepts SCTs this way only in versions before 148, so treat it as a legacy path rather than something to build on.

    How browsers enforce CT in 2026

    CT only works if certificates that skip the logs get punished, and the browsers are the punishment. Chrome has required CT for publicly trusted certificates issued after April 30, 2018, enforced from Chrome 68 onward. Firefox joined properly in 2025: CT is enforced by default on desktop from version 135 and on Android from version 145, for certificates issued by CAs in Mozilla's Root CA Program. If you've read that Firefox ignores CT, that advice has expired.

    BrowserCT requirement as of August 2026
    Google ChromeEnforced for publicly trusted certificates issued after April 30, 2018. Embedded SCTs must come from 2 distinct logs (lifetime ≤ 180 days) or 3 (longer), with at least 2 from different log operators.
    Microsoft EdgeBuilt on Chromium, so it follows Chrome's CT policy and log list.
    Mozilla FirefoxEnforced by default on desktop from Firefox 135 and Android from 145. Mozilla's policy is currently equivalent to Chrome's and it accepts the logs Chrome accepts.
    Apple SafariEnforced across Apple platforms with Apple's own policy: at least two SCTs, with the required count scaling by validity period, and at least one from an RFC 6962-compliant log.

    Two details in Chrome's policy are worth internalising because they explain most CT surprises. First, the required SCTs must come from different log operators, not merely different logs — that way one operator's outage or removal can't invalidate certificates wholesale. Second, Chrome stops enforcing CT entirely if its log list goes stale for more than 70 days, which is the safety valve that lets new logs join the ecosystem without breaking old browsers.

    In practice none of this is your job. A CA that wants its certificates to work in real browsers has no choice but to log them, so every certificate My-SSL issues through Certum arrives with its SCTs already embedded — the same is true of any publicly trusted SSL certificate you buy. That universality is also what makes certificate-issuance statistics drawn from CT logs so reliable: near enough everything is in there.

    Shorter certificates, fewer SCTs

    Here's a connection most CT explainers miss. The number of SCTs Chrome demands depends on how long the certificate is valid: two distinct logs for 180 days or less, three for anything longer. Certificate lifetimes are meanwhile on a published downward schedule under CA/Browser Forum ballot SC-081v3 — 398 days until March 2026, 200 days from March 15, 2026, 100 days from March 15, 2027, and 47 days from March 15, 2029.

    Chrome's embedded SCT requirement plotted against the shrinking maximum TLS certificate lifetimeA horizontal scale of certificate lifetime in days with a gold threshold line at 180 days. Certificates of 180 days or less need SCTs from two distinct CT logs; certificates longer than 180 days need three. Markers show the CA/Browser Forum schedule: 398 days until March 2026, 200 days from March 15 2026, 100 days from March 15 2027, and 47 days from March 15 2029. The 200-day maximum still sits above the threshold, so most certificates carry three SCTs today, while the 2027 drop to 100 days moves every certificate below the line to two.Required embedded SCTs vs certificate lifetime (Chrome, August 2026)180 days or less2 SCTsfrom distinct logsMore than 180 days3 SCTsfrom distinct logs180-day line047Mar 2029100Mar 2027200Mar 2026 · today398until Mar 2026Maximum TLS certificate lifetime, in days (CA/Browser Forum ballot SC-081v3)
    Today's 200-day maximum still sits to the right of the gold line, so public certificates carry three SCTs. The March 2027 step down to 100 days pushes the entire ecosystem across it — and quietly makes every certificate a little smaller.

    Line those two rules up and something concrete falls out. Today's 200-day maximum is still above the 180-day threshold, so current public certificates carry three embedded SCTs. When the maximum drops to 100 days in March 2027, every compliant certificate lands below the line and needs only two. Certificates get slightly smaller, handshakes carry a little less data, and CAs submit fewer entries per certificate — a small efficiency dividend hiding inside a change everyone is bracing for on renewal-frequency grounds.

    The move to static, tiled logs

    The CT ecosystem is midway through its first real architectural change, and it happened quietly enough that most guides haven't caught up. The original RFC 6962 log design is being replaced by the Static CT API, which serves the Merkle tree as plain static files — "tiles" of 256 entries — instead of answering dynamic queries from a database. A log becomes a directory of cacheable files rather than a fleet of servers, which cuts the cost of running one dramatically.

    The migration is real and dated. Let's Encrypt made its RFC 6962 logs read-only on November 30, 2025 and shut them down entirely on February 28, 2026, writing only to Static CT logs from then on. Other operators are moving along the same path.

    What changes for you: nothing

    Certificates, SCTs, and browser checks all work the same way. The change is in how logs are built and paid for, and the reason it matters to you is indirect but real: cheaper logs mean more independent operators, and more operators is what keeps the "different log operators" requirement meaningful as certificate volumes climb.

    Monitors, auditors, and crt.sh

    A public record only helps if someone reads it. CT defines two roles around the logs that do exactly that. Monitors watch the logs for certificates of interest — typically a domain owner, or a service watching on their behalf, looking for any certificate issued in their name. Auditors check the logs' own integrity, verifying through Merkle proofs that a log is consistent over time and hasn't quietly rewritten history. Browsers act as lightweight auditors every time they check an SCT.

    Searching the logs yourself

    The best-known public search interface is crt.sh. Enter a domain — including a wildcard like %.example.com — and it lists every logged certificate that mentions it, with the issuing CA, validity dates, and the hostnames each one covers. It's a fast way to answer a genuinely useful question: has anyone been issued a certificate for my domain that I didn't request?

    For continuous coverage rather than spot checks, many certificate-monitoring services and some CAs offer CT monitoring that emails you whenever a new certificate naming your domain appears in a log. Pairing that with CAA records gives you both halves of the defence: CAA restricts who may issue, CT alerts you if something was issued anyway.

    What CT does and doesn't do

    It's easy to over- or under-sell Certificate Transparency, so it's worth being precise about its scope.

    What CT does

    • Makes every publicly trusted certificate discoverable in public logs.
    • Lets domain owners detect certificates they never requested.
    • Holds CAs accountable, since mis-issuance can't stay hidden.
    • Provides the most objective data on real-world certificate issuance.

    What CT doesn't do

    • It doesn't encrypt traffic or strengthen the TLS connection itself.
    • It doesn't prevent a CA from issuing a bad certificate.
    • It doesn't act on its own — someone has to monitor the logs.
    • It doesn't cover privately trusted or internal CAs.

    The side effect nobody warns you about

    Every hostname in a publicly trusted certificate becomes public the moment it's logged. Request a certificate for staging.example.com and that name is searchable forever — the logs are append-only, so you can't take it back. Attackers routinely mine CT for exactly this reason. If a hostname has to stay quiet, cover it with a wildcard certificate that never names it, or use an internal CA whose certificates aren't subject to CT.

    CT is detection, not prevention. It's a smoke detector, not a lock — it tells you something happened, fast and reliably, but it doesn't stop it. That's by design, and it's why CT pairs with preventive controls like CAA. The deterrent value is real, though: a CA that knows every issuance is public, permanent, and attributable behaves very differently from one operating in the dark.

    What this means for you

    For most site owners, CT is something you benefit from without configuring. Still, a few concrete moves turn it from background plumbing into a real security tool.

    • You don't set up CT yourself. Your CA logs your certificate and embeds the SCTs before handing it over. There's no CT directive to enable on Nginx, Apache, or IIS — install your certificate as normal and the SCTs are already inside it.
    • Search the logs for your domain. Run your domain through crt.sh and review the results for any certificate you don't recognise — an unfamiliar CA, hostnames you didn't request, or dates that don't line up with your renewals.
    • Set up CT monitoring. If your domain matters, use a service that emails you when a new certificate for it appears in a log. That's your early warning for both mistakes and abuse.
    • Think before you name a host. Every SAN you request goes public. Decide deliberately which hostnames you're willing to publish, and reach for a wildcard when you aren't.
    • Combine CT with CAA. Publish CAA records to restrict which CAs may issue for your domain, and lean on CT to confirm nothing slipped through. Restriction plus verification is far stronger than either alone.

    Certificate Transparency is one of those quiet improvements that made the whole Web PKI more honest without most people noticing. If you want the layers underneath it, start with how SSL works and what PKI is, then see how revocation handles certificates that have to be pulled in our guide to certificate revocation.

    Frequently Asked Questions

    Get instant answers to common questions about SSL certificates and our services.

    Still Have Questions?

    Our SSL experts are available 24/7 to help with any questions about certificates, installation, or technical issues.

    Every certificate we issue is already in the logs

    CT compliance isn't a feature you shop for — it's the baseline any publicly trusted CA has to meet. My-SSL issues through Certum, a publicly trusted CA, so the SCTs are embedded before the certificate reaches you. If you're deciding which type of certificate you actually need, the SSL certificate range is the place to compare DV, OV, and EV side by side.

    Related reading