a drop in replacement for google's proprietarily generated CRLSet, built only from public data.
Builds run every 6 hours into crls.helium.computer, under
builds/<sequence>/. The newest is copied to latest/, and
latest.json points to it. The explorer looks up a
serial or certificate in the newest build.
- using it in a browser, or shipping it in one: integration.md
- checking a build is genuine, or rebuilding it: verifying.md
- what goes in, and the dataset format: policy.md
There are three CRLSets. They differ only in which leaf revocations they keep.
standard: keyCompromise (1) and privilegeWithdrawn (9). This matches what the Chrome Root Program says CRLSets cover.priority:standardplus cessationOfOperation (5), like CRLite's "compat" channel.all: every reason except certificateHold (6) and removeFromCRL (8).
Not sure? Use standard. It's the one compared against Google's.
crlset/*/crl-set: the actual CRLSetscrlset/*/manifest.json: component manifest for thecrl-setnext to itrevocations.ndjson.zst: every revocation from every validated CRL, one JSON object per lineissuers.json: every CA key, with its certificates, trust stores, CRL health and countssources.json: every disclosed CRL URL, with its hash, validity and entry count, or why it was rejectedreport.json: totals, failures and the comparison with Google's CRLSetgoogle/: the official CRLSet this build was compared againstsnapshot.tar.zst: the exact inputs: CCADB reports, every fetched CRL and the fetch logSHA256SUMS: hashes of everything above
- Fetch every CRL that any unexpired CCADB CA discloses.
- Keep a CRL only if its signature checks out.
- The dataset keeps everything.
- The CRLSet tiers keep Chrome-trusted issuers, plus every revoked CA certificate.
- Leaked CA keys get blocked outright.
Details in policy.md.
Every file in SHA256SUMS has a build provenance attestation:
gh attestation verify crlset/standard/crl-set \
--repo imputnet/opencrlsetBuilds are reproducible from snapshot.tar.zst; see verifying.md.
Needs node >=26 + pnpm
pnpm install
pnpm test
node src/cli.ts snapshot snapshot # about 20k CRLs, a few hundred MB
node src/cli.ts fetch-google google
node src/cli.ts build snapshot out --google google/crl-set
node src/cli.ts dump out/crlset/standard/crl-set
node src/cli.ts check out/crlset/standard/crl-set \
<issuer-spki-sha256> <serial-hex>site/ is a static explorer for the latest build. pnpm site dev
serves it with out/ as latest/.
AGPL-3.0-or-later, see LICENSE.