Skip to content
Free self-assessment

CA Compromise Readiness Scorecard

A certificate authority you trust gets compromised — the generic shape of the October 2026 eMudhra intermediate-CA incident. Browsers were protected within days by revocation, but non-browser clients kept trusting the bad intermediates until their trust bundle was updated. Work through a checklist across the seven controls that decide whether that is a quick, fleet-wide distrust or a slow scramble — CA & certificate inventory, revocation consumption, trust-store agility, lifecycle automation, monitoring, pinning & defence-in-depth and incident response. You get a banded 0–100 readiness score, a radar of where you are strong and weak, and the gaps ranked so you fix the ones that most shrink the blast radius first. The weighting is a transparent heuristic, nothing is uploaded, and the score is shareable by permalink.

Readiness score
0/ 100
Exposed

You likely cannot see everywhere you trust a CA, and have no quick way to distrust one across the fleet. A compromised intermediate would leave non-browser clients trusting it indefinitely while you scramble. Start with inventory and a tested fleet-wide ca-certificates rollout.

0 / 29 questions answered · weighting is a heuristic
255075100Inventory0Revocation0Agility0Lifecycle0Monitor0Pinning0IR0

Score per dimension (0–100)

Inventory
0
wt 18
Revocation
0
wt 18
Agility
0
wt 18
Lifecycle
0
wt 14
Monitor
0
wt 12
Pinning
0
wt 8
IR
0
wt 12

Prioritised gaps

Highest-weight, lowest-scoring controls first — spend remediation effort here.

  1. CA & certificate inventory · unanswered

    Build and maintain an inventory of trusted roots and intermediates across your estate, so a "distrust this CA" event has a known blast radius instead of a guess.

  2. CA & certificate inventory · unanswered

    Record which services and clients chain to which issuing CA, so you can answer "are we affected?" in minutes rather than by waiting to break.

  3. CA & certificate inventory · unanswered

    Extend the inventory beyond the OS bundle to language/runtime trust stores, container images and embedded devices — these are exactly the clients that keep trusting a revoked CA.

    Reference: certifi / cacerts

  4. Revocation consumption · unanswered

    Classify your clients by whether they consume revocation; treat anything verifying only against a static bundle as "will keep trusting a revoked CA until its bundle is updated".

    Reference: curl / cert.pem

  5. Revocation consumption · unanswered

    Enable OCSP stapling / CRL checking where supported and decide the hard-fail vs soft-fail behaviour deliberately; a soft-fail quietly removes the protection.

    Reference: OCSP / CRL

  6. Revocation consumption · unanswered

    Document that browser revocation does not reach your non-browser clients, so "the browsers are fine" is not evidence your backend or fleet is fine.

    Reference: OneCRL / CRLite / CRLSets

  7. Trust-store agility · unanswered

    Ensure your patching / config-management can push an updated ca-certificates bundle fleet-wide on a short clock — distro trust updates are how non-browser clients learn a CA is distrusted.

    Reference: ca-certificates

  8. Trust-store agility · unanswered

    Rebuild and redeploy base images regularly so embedded trust stores stay current; a long-lived image keeps trusting a revoked CA until it is rebuilt.

+ 21 more gaps in the full export.

CA & certificate inventory · weight 18

You cannot distrust what you cannot see. Know every root and intermediate you trust, and every service and client that relies on them — including the trust stores you did not configure yourself.

0
/ 100
inv1

You have a current inventory of the roots and intermediate CAs your systems trust — not just "the OS default bundle".

inv2

You can map a compromised intermediate CA to the specific services, certificates and client applications that depend on it.

inv3certifi / cacerts

The inventory covers non-OS trust stores: application and language stores (e.g. Python certifi, Go, Node, the JVM cacerts, Rust webpki), container base images, appliances and IoT.

inv4

You track which CA issued each of your own public certificates, so you know your own exposure if that CA is distrusted by browsers.

inv5

The inventory is refreshed automatically or on a defined cadence, not a one-off spreadsheet that has since gone stale.

Revocation consumption · weight 18

Revocation only protects clients that actually consume it. Browsers do (OneCRL, CRLite, CRLSets, OCSP); many non-browser clients silently keep trusting a revoked CA until their trust bundle is updated.

0
/ 100
rev1curl / cert.pem

You know which of your client types honour revocation at all, versus those that ignore it (e.g. curl verifying only against a static cert.pem with no revocation check).

rev2OCSP / CRL

For clients that can use it, OCSP (ideally OCSP stapling) or CRL checking is actually enabled and failures are handled meaningfully — not soft-failed into "allow".

rev3OneCRL / CRLite / CRLSets

You understand that browser revocation mechanisms (Mozilla OneCRL / CRLite, Chrome CRLSets, Apple/Microsoft revocation) are browser-side and do NOT cover your servers, scripts, containers or appliances.

rev4

Server-to-server and API/backend TLS calls are included in your revocation thinking — not just user-facing browser traffic.

Trust-store agility · weight 18

The decisive question: can you push a "distrust this CA" change across servers, workstations, containers and CI in hours, not weeks? That means OS ca-certificates updates, container rebuilds and config management.

0
/ 100
ag1ca-certificates

You can roll out an updated OS ca-certificates package (the distro trust bundle) across your server and workstation fleet quickly via patch/config management.

ag2

Container and VM base images are rebuilt and redeployed on a cadence that refreshes their embedded trust store, rather than shipping the same stale bundle for months.

ag3

Application and language trust stores (certifi, cacerts, bundled PEM files) are patched through dependency management, not left frozen at whatever shipped originally.

ag4

You have a tested way to add an explicit distrust / removal for a specific CA across the fleet, not only to add new trust.

ag5

Appliances, network gear and IoT with their own trust stores have a known (even if slow) update path, and you know which cannot be updated at all.

Certificate lifecycle & automation · weight 14

If a CA is distrusted, every certificate it issued must be re-issued from another CA. Automation (ACME) and short-lived certificates turn that mass re-issuance from a fire drill into routine.

0
/ 100
lc1ACME

Certificate issuance and renewal are automated (e.g. ACME), so re-issuing many certificates at once does not depend on manual steps.

lc2

Certificates are relatively short-lived, which both limits blast radius and keeps the renewal path exercised and trusted.

lc3

You can switch issuing CA (or use a backup/secondary CA) without a major re-architecture if your primary CA is compromised or distrusted.

lc4

You have a complete, current inventory of your own certificates with expiry and issuer, so re-issuance can be driven systematically.

Monitoring & detection · weight 12

Seeing unexpected issuance for your domains and restricting who may issue. Certificate Transparency log monitoring and CAA records are the public tools here.

0
/ 100
mon1Certificate Transparency

You monitor Certificate Transparency (CT) logs for certificates issued for your domains, and alert on issuance you did not request.

mon2CAA records

CAA DNS records restrict which CAs are allowed to issue for your domains.

mon3

You have a defined channel to learn about CA incidents promptly (vendor advisories, root-program / CA bug trackers, security feeds) rather than finding out from an outage.

mon4

TLS/certificate validation failures across clients are logged and visible, so a wave of failures after a distrust event is detected and attributable.

Pinning & defence-in-depth · weight 8

Reducing single-CA dependence without creating a brittle outage. Where pinning and mTLS are used, understanding their trade-offs, and avoiding one CA being a single point of failure.

0
/ 100
def1

You know where certificate / public-key pinning is in use, and the risk it carries: a pin to a distrusted CA can turn into a self-inflicted outage.

def2mTLS

A single CA compromise is not a single point of failure for your most critical paths (e.g. via mTLS with your own issuing CA, or multi-CA strategies where warranted).

def3

Internal / private PKI (your own roots and intermediates) is governed with the same inventory, rotation and distrust-agility expectations as the public CAs you rely on.

Incident response & dependencies · weight 12

A tested playbook for "a CA we trust is compromised", a map of which vendors and SaaS you depend on, and a comms plan — so the response is rehearsed, not improvised.

0
/ 100
ir1

You have a specific playbook for "a CA or intermediate we trust is compromised / being distrusted", separate from a generic outage runbook.

ir2

That playbook has been exercised (tabletop or drill), including the awkward case where browsers are fine but backend/fleet clients still trust the bad CA.

ir3

You have mapped the vendors, SaaS and upstream services you depend on whose own CA exposure could affect you, and know how you would learn of their status.

ir4

A communications plan exists for a CA-trust incident: who decides, who informs customers/users, and how you explain partial impact (browsers vs other clients).

Heuristic self-assessment. The dimension weights are a transparent judgement framework for structured self-reflection, not a measurement, certification or guarantee of outcome. This tool performs no scan and runs entirely in your browser — nothing is uploaded. Named technologies (OCSP, CRL, Certificate Transparency, CAA, ACME, OneCRL, CRLite, CRLSets, ca-certificates, certifi) are referenced for orientation only, and no breach or affected-site figures are quoted. PlayCISO is not affiliated with eMudhra, Mozilla, Google, Apple, Microsoft or any certificate authority. Your answers are stored only in the shareable link you choose to copy.

TL;DR

What this scorecard is

  • A free, 100% in-browser PRE-incident self-assessment: answer a checklist across the seven control areas that decide whether a trusted certificate authority going bad is a fast, fleet-wide distrust or a slow, blind scramble, and get a banded 0–100 readiness score.
  • Seven weighted dimensions: CA & certificate inventory, revocation consumption across client types, trust-store agility / fleet-wide distrust, certificate lifecycle & automation, monitoring & detection, pinning & defence-in-depth, and incident response & dependencies.
  • Modelled on the generic shape of the October 2026 eMudhra intermediate-CA compromise: browsers were protected quickly by revocation, but non-browser clients (curl, language trust stores, containers, appliances) kept trusting the compromised intermediates until a software / ca-certificates update shipped.
  • Every question maps to a concrete next action, and the gaps are prioritised lowest-score, highest-weight first — so you spend remediation effort where it most reduces the blast radius of a CA compromise.
  • Nothing is uploaded and no scan runs. Export to Markdown or CSV, and share the exact scorecard with a permalink (your answers are encoded in the link, base64url). An educational self-assessment, not an audit or certification.

Revocation is not the same as reaching every client

When a certificate authority's private key is compromised, the fix is to distrust it — and the browser ecosystem is good at that. Mozilla's OneCRL and CRLite, Chrome's CRLSets, and Apple and Microsoft's revocation machinery pushed the distrust to mainstream browsers quickly during the eMudhra-style event. The problem is everything that is not a browser: a script running curl against a static cert.pem, a service whose language trust store (Python's certifi, Go, the JVM's cacerts, Rust's webpki) was baked in months ago, a container image nobody has rebuilt, an appliance with its own frozen bundle. Those clients keep trusting the compromised CA until their trust store is updated — usually via an OS ca-certificates package update or a software release. Readiness is whether you can see all of those places and push the distrust across them in hours.

The seven dimensions are weighted on purpose — inventory, revocation consumption and trust-store agility carry the most, because the eMudhra pattern showed the decisive gap is not whether a CA can be revoked but whether you know where you trust it and can act everywhere quickly. Automation closes the loop: ACME and short-lived certificates make the forced re-issuance after a mass distrust routine rather than a fire drill, Certificate Transparency monitoring and CAA records govern and surveil issuance, and a rehearsed incident playbook turns the response from improvisation into muscle memory. That weighting is a heuristic, shown openly so you can argue with it and adjust it to your own environment. It is an educational self-assessment, not a certification, and it quotes no invented statistics. PlayCISO is not affiliated with eMudhra, Mozilla, Google, Apple, Microsoft or any certificate authority.

Frequently asked questions

What is a CA (certificate authority) compromise?

A certificate authority is an organisation whose private keys sign the certificates that let clients verify a server is who it claims to be. A CA compromise is when an attacker gains control of a CA's — or an intermediate CA's — private key, so they can mint certificates that clients will trust. The response is revocation: telling clients to stop trusting that CA. The October 2026 eMudhra incident is the generic case this scorecard models: eight eMudhra intermediate CAs' private keys were compromised, responsibly disclosed, and had to be distrusted across the ecosystem.

Why didn't revocation fully fix the eMudhra incident?

Because revocation only protects clients that actually consume it. Mainstream browsers were protected quickly through browser-side mechanisms — Mozilla's OneCRL and CRLite, Chrome's CRLSets, and Apple/Microsoft revocation. But those are browser-side and do not reach non-browser clients. Tools like curl verifying against a static cert.pem, language trust stores (Python's certifi, Go, the JVM's cacerts, Rust's webpki), container base images, appliances and IoT kept trusting the compromised intermediates until their own trust bundle — typically the OS ca-certificates package or a software update — was updated. The readiness gap is not whether a CA can be revoked, but whether you can push that distrust everywhere you trust it, quickly.

How do I know if my clients still trust a revoked CA?

Start by inventorying where you trust CAs: the OS bundle is only part of it. Application and language trust stores (certifi, cacerts, bundled PEM files), container images, appliances and IoT each carry their own trust store. Then classify those clients by whether they consume revocation at all — a client that only verifies against a static bundle with no OCSP or CRL check will keep trusting a revoked CA until that bundle is updated. Certificate Transparency monitoring and centralised TLS validation-failure logging help you see issuance and failures. This scorecard walks you through those checks; it performs no scan itself.

Is this legal or security advice, or a certification?

No. It is an educational self-assessment and a transparent heuristic for structured self-reflection — not a security audit, certification, penetration test or legal advice, and it does not scan or touch any system. The dimension weights reflect the lesson of the eMudhra-style incident (inventory, revocation consumption and trust-store agility matter most) and are shown openly so you can adjust them to your environment. PlayCISO is not affiliated with eMudhra, Mozilla, Google, Apple, Microsoft or any certificate authority, and quotes no invented breach or affected-site figures.

This tool is free and always will be. Would a Pro workspace — saved designs, team sharing and exports — be worth paying for?

Show me Pro →No account needed to use this tool — this just tells us whether Pro is worth building out.
🎉 New here? Use code WELCOME10 for 10% off any plan at checkout
CA Compromise Readiness Scorecard — Free Certificate Authority Self-Assessment · PlayCISO