Bulk SSL/TLS Certificate Expiry & Chain Checker avatar

Bulk SSL/TLS Certificate Expiry & Chain Checker

Pricing

Pay per event

Go to Apify Store
Bulk SSL/TLS Certificate Expiry & Chain Checker

Bulk SSL/TLS Certificate Expiry & Chain Checker

Check TLS certificates for many hosts: days to expiry, hostname match, incomplete or untrusted chain, self-signed, weak keys, protocol, SANs. Bulk, scheduled-friendly.

Pricing

Pay per event

Rating

0.0

(0)

Developer

psx

psx

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 days ago

Last modified

Share

Bulk SSL/TLS Certificate Expiry and Chain Checker

Know which certificates are about to expire, or are already broken, across hundreds of hosts. Opens a TLS connection per host and reads the public certificate; no data is sent, no personal data collected. Schedule it daily and alert on status: critical.

What is checked

  • Days remaining, valid-from/to, issuer, subject, SANs, serial, SHA-256 fingerprint.
  • expired, expires-critical (default 14 days), expires-soon (default 30 days), not-yet-valid.
  • hostname-mismatch (certificate does not cover the host), self-signed, incomplete-chain (missing intermediates), untrusted, expired intermediates.
  • weak-key (RSA under 2048), old-protocol (TLS 1.0/1.1 negotiated), long-lifetime (over 398 days).
  • Protocol, cipher, ALPN, key type and size, full chain as sent by the server.
  • Private/reserved addresses are refused (SSRF guard, also for DNS results). One connection at a time per host with a small delay.
  • Note: trust is evaluated against the Node.js CA store of the actor image.

Input

FieldDefaultDescription
hostsrequiredUp to 10,000: host, host:port or URL.
port443Default port (use 465/993/8443 for mail or other TLS services).
warnDays / criticalDays30 / 14Status thresholds.
delayMs / concurrency100 / 8Politeness.

Output

One item per host: status (ok / warning / critical / error), daysRemaining, certificate fields, chain[], issues[].

{ "host": "expired.badssl.com", "status": "critical", "daysRemaining": -4195, "issues": [{ "severity": "high", "id": "expired" }] }

Pricing (pay per event)

apify-actor-start $0.005 per run (per GB), host-checked $0.0018 per host (failed connections are charged too, since the check ran; invalid inputs are not).

Develop

npm install && npm test (needs openssl for one test); local run with storage/key_value_stores/default/INPUT.json and npm start; deploy apify push (private by default).