Security Headers & TLS Checker - A-F Grade avatar

Security Headers & TLS Checker - A-F Grade

Pricing

Pay per event

Go to Apify Store
Security Headers & TLS Checker - A-F Grade

Security Headers & TLS Checker - A-F Grade

Passive bulk check of HSTS, CSP, cookie flags, HTTPS redirect, TLS versions and certificate expiry. A-F grade with prioritised fix recommendations.

Pricing

Pay per event

Rating

0.0

(0)

Developer

psx

psx

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

9 days ago

Last modified

Share

Website Security Headers + TLS Audit - A-F grade (HSTS, CSP, cookies, certificate expiry)

Check the security posture of any website in seconds, without credentials and without active attacks. For each URL you get a grade (A-F), a score, and a prioritised list of findings with fix recommendations:

  • HTTP security headers: Strict-Transport-Security (max-age, includeSubDomains), Content-Security-Policy (missing, unsafe-inline/eval, wildcards), clickjacking protection, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, COOP, CORS misconfiguration, information-leaking headers (Server version, X-Powered-By).
  • Cookies: Secure / HttpOnly / SameSite flags (values are redacted, never stored).
  • TLS: certificate expiry, trust chain, hostname match, key strength, negotiated protocol/cipher, and which protocol versions (TLS 1.0 / 1.1 / 1.2 / 1.3) the server accepts.
  • HTTPS: HTTP to HTTPS redirect, security.txt (RFC 9116), CAA record present.

Use cases

  • Agencies and freelancers: prospect lists and client reports ("your site gets a D, here is why").
  • Security and compliance teams (NIS2, ISO 27001 evidence): scheduled checks across a domain portfolio, alert on expiring certificates.
  • Procurement and vendor risk screening at scale.
  • AI agents (MCP): one JSON record per site.

Input

FieldDefaultDescription
urlsrequiredUp to 1000 sites or bare domains.
checkTlstrueCertificate and protocol-version checks.
checkCookiestrueCookie flags.
checkRedirecttrueHTTP to HTTPS redirect check.
checkSecurityTxttrue/.well-known/security.txt.
concurrency5Sites in parallel (max 20); one host at a time.
respectRobotstrueSkip sites whose robots.txt disallows the path for this bot.
{ "urls": ["https://github.com", "example.com"] }

Output (one item per site)

{
"url": "https://github.com/", "status": 200, "grade": "A", "score": 94,
"counts": { "high": 0, "medium": 0, "low": 2, "info": 1 },
"findings": [{ "id": "permissions-policy-missing", "severity": "low", "title": "Permissions-Policy missing",
"detail": "...", "recommendation": "Send Permissions-Policy: camera=(), microphone=(), geolocation=()." }],
"tls": { "protocol": "TLSv1.3", "validTo": "2027-02-05T23:59:59.000Z", "issuer": "Sectigo Limited",
"supported": { "TLSv1": false, "TLSv1_1": false, "TLSv1_2": true, "TLSv1_3": true } },
"httpsRedirect": { "status": 301, "redirectsToHttps": true }, "securityTxt": true, "caa": true
}

The score starts at 100 and subtracts a penalty per distinct finding (high 20, medium 8, low 3); plain-HTTP sites and invalid certificates are capped. It is a heuristic for ranking, not a certification.

Pricing (pay per event)

EventWhen chargedPrice
apify-actor-startonce per run$0.005
site-auditedeach site successfully audited$0.008 (= $8 per 1,000 sites)

Why this price: competing Store actors range from $0.50 to $20 per 1,000 sites; the cheap ones check only headers or only certificates. This one combines headers, cookie flags, CSP weaknesses, HTTPS redirect, TLS protocol versions, certificate expiry, security.txt and CAA with a single grade and fix text. Example: a 500-domain portfolio = $4 per scan; a daily expiry monitor over 50 domains = about $12/month.

Safety and politeness

  • Passive only: one normal GET (plus robots.txt, HTTP-redirect probe, security.txt) and a handful of standard TLS handshakes per site. No scanning of ports, no payloads, no exploitation. Use it on sites you own or are permitted to assess.
  • Identifies as SecurityHeadersAudit; one host is never checked concurrently; robots.txt respected.
  • SSRF protection: http/https only; localhost, internal hostnames and private/reserved IPs are refused (checked at connect time and on each redirect).

FAQ

Is this a vulnerability scanner?
No. It is a passive posture check: one normal GET, a redirect probe, security.txt and a few standard TLS handshakes. No port scans or payloads.

Can I use it on any site?
Use it on sites you own or are permitted to assess. It respects robots.txt by default.

How is the grade calculated?
Score starts at 100 and subtracts 20/8/3 per distinct high/medium/low finding; plain HTTP and invalid certificates are capped. It is a ranking heuristic, not a certification.

Can I monitor certificate expiry?
Yes. Schedule the Actor and alert on tls.validTo via webhook or the API.

Does it help with NIS2 or ISO 27001?
It produces evidence of baseline hardening and certificate hygiene across many domains. It does not replace an audit.

Part of the Site Audit Suite

Run the same list of domains through every audit:

Tip: pipe one domain list into several actors with an Apify Task or the API and join the results by url.

Develop

npm install && npm test
mkdir -p storage/key_value_stores/default
echo '{"urls":["https://example.com"]}' > storage/key_value_stores/default/INPUT.json
npm start # results in storage/datasets/default/
docker build -t security-headers-tls-audit .

Deploy (needs Apify account): npx apify-cli login && npx apify-cli push.

Verified (2026-10-05, local)

github.com A/94, bbc.com C/71, example.com F (TLS 1.0/1.1 accepted, confirmed with openssl), expired.badssl.com F (expired + untrusted cert), http-only site capped at E. Docker: docker run --user 996 -v <dir>:/usr/src/app/storage security-headers-tls-audit.