CRL Freshness & Drift Monitor
Pricing
$3.00 / 1,000 successful crl checks
CRL Freshness & Drift Monitor
Monitor public X.509 certificate revocation lists for expiry, publication drift, issuer changes, and revoked-certificate set changes across scheduled runs.
Pricing
$3.00 / 1,000 successful crl checks
Rating
0.0
(0)
Developer
Maarten Vreeburg
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
Monitor public X.509 certificate revocation lists (CRLs) for expiry risk, publication changes, issuer/key-identifier drift, and revoked-certificate set changes. The Actor is designed for PKI, identity, infrastructure, and security teams that need a schedule-ready external check of public CRL distribution points.
What it does
For each CRL URL, the Actor:
- fetches a bounded public HTTP(S) endpoint;
- parses DER or PEM X.509 CRL data;
- reports
thisUpdate,nextUpdate, issuer, CRL number, delta-CRL indicator, authority key identifier, signature algorithm, and revocation counts; - classifies freshness as
healthy,expiring,expired,not_yet_valid, orno_next_update; - compares the normalized CRL with the prior successful check in a named key-value store; and
- emits one structured dataset row with
initial_snapshot,unchanged, orchanged.
Failed fetches, malformed CRLs, issuer mismatches, and oversized CRLs do not replace a known-good baseline and are not charged as successful checks.
Input
{"monitorId": "production-pki","targets": [{"label": "DigiCert Global Root G2 CRL","crlUrl": "http://crl3.digicert.com/DigiCertGlobalRootG2.crl"},{"label": "Corporate issuing CA","crlUrl": "https://pki.example.com/issuing-ca.crl","expectedIssuer": "CN=Example Issuing CA,O=Example Corp,C=US"}],"warningHours": 72,"timeoutSeconds": 30,"maxConcurrency": 3}
Use the same monitorId for scheduled runs that should share history. expectedIssuer is an optional exact RFC 4514 string; omit it until you have copied the issuer value from a successful row.
Output
Important fields include:
status,crl_health,requirements_status, andupdate_patternissuer,this_update,next_update, andhours_until_next_updatecrl_number,delta_base_crl_number, andauthority_key_identifierrevoked_certificate_count,revoked_entries_sha256, and reason counts- added/removed/modified revoked-serial counts and bounded detail
content_hash,previous_hash, andstate_store_mode- structured change records with review priorities
routine_republication means signed publication metadata changed while the normalized revoked set and issuer/authority identity did not. revoked_set_changed means serial membership or revocation metadata changed. These labels are review aids, not proof that a CA operation is safe or unsafe.
Persistence
The Actor stores successful normalized snapshots in the explicit named key-value store:
crl-freshness-drift-monitor-state-v1
Keys are SHA-256 derivations of monitorId plus crlUrl. The default run-scoped store is not used as cross-run memory.
Pricing behavior
The custom pay-per-event event is crl_check. It is emitted only after a CRL is fetched, parsed, compared, and stored successfully. Errors are written to the dataset without the custom charge.
Security and operating limits
- 1–100 targets; maximum 5 concurrent requests
- public HTTP(S) URLs only; URL credentials and fragments rejected
- standard ports 80/443 only
- private, loopback, link-local, multicast, and reserved destinations blocked
- every redirect destination is resolved and validated; the connection is pinned to a validated address
- maximum 5 redirects and 2 bounded attempts
- compressed HTTP responses rejected
- 6 MB response limit
- maximum 50,000 revoked-certificate entries
- 60-second maximum timeout per target
- failed observations never overwrite a successful baseline
HTTP is supported because many CRL distribution points are intentionally published over HTTP. X.509 CRLs are signed objects, but this Actor does not verify the CRL signature because it does not accept an issuer-certificate trust input. It parses the signed fields and reports signature_verified: false. Use a trusted PKI validator and the issuer certificate when cryptographic authenticity is required.
The Actor does not query LDAP distribution points, OCSP responders, private/internal URLs, or authenticated endpoints. Polling can miss a CRL that changed and reverted between runs. Apify schedules/webhooks provide automation primitives; the Actor is not a complete PKI monitoring or incident-response system.
Local development
python -m venv .venv. .venv/bin/activatepip install -r requirements.txtpython smoke_test.pynpx --yes apify-cli validate-schemanpx --yes apify-cli run --purge
Independent product notice
This is an independent monitoring utility. It is not affiliated with, endorsed by, or operated by DigiCert, Microsoft, GlobalSign, any certificate authority, browser vendor, or PKI platform. Public names in examples identify public CRL sources only. Verify material PKI decisions against the CA's official documentation and your organization's trust policy.