Check HSTS configuration and preload list status for any domain
Checking HSTS for ...
Check your domain's status on the official HSTS preload list maintained by browser vendors.
Check on hstspreload.orgAn HSTS test checks one thing: does the site send the Strict-Transport-Security header, and is it configured safely. An HSTS checker also reports whether the domain is on the official preload list. Our free HSTS Preload Checker verifies your domain's HTTP Strict Transport Security configuration and checks if it's on the official HSTS preload list. HSTS tells browsers to only connect via HTTPS, protecting against protocol downgrade attacks. The preload list ensures browsers enforce HTTPS before the first visit.
HSTS is just one HTTP response header. Add it to every HTTPS response, then confirm it here. Test with a short max-age before committing to a long one.
Nginx
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
Apache (needs mod_headers)
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
IIS — web.config
<system.webServer><httpProtocol><customHeaders> <add name="Strict-Transport-Security" value="max-age=31536000; includeSubDomains" /> </customHeaders></httpProtocol></system.webServer>
Cloudflare
SSL/TLS → Edge Certificates → HTTP Strict Transport Security. Use “Enable” rather than “Max-Age” if you also want the preload token.
Before you request preload
max-age of at least 31536000 (one year). A 30-day value is valid HSTS but is rejected by the preload list.includeSubDomains — and make sure every subdomain has HTTPS, because it is now forced.max-age window, even if you break something.max-age=31536000) is the normal answer, and it is also the minimum required for the preload list. While you are still testing, start with max-age=300 and raise it once you are confident every page works over HTTPS. Note that browsers cap how long they actually remember the policy regardless of what you send.max-age under one year, a missing includeSubDomains, or no valid certificate at submission time. Plenty of domains also simply have not been submitted yet — the list is opt-in. Check that port 80 redirects to HTTPS, because the preload submission service follows it before accepting a domain.includeSubDomains. Without it, each host has to be covered by its own policy, and a subdomain that has never sent the header can still be reached over plain HTTP. That flag also forces HTTPS on subdomains you may not control or may not have certificates for, which is the reason it is worth auditing your DNS first — a wrong entry here can break an internal service for every browser that has seen your policy.http:// is unprotected, which is exactly the request an attacker wants to intercept. The redirect is what closes that window; HSTS is what stops it being exploited again on later visits.Header: HTTP Strict Transport Security (HSTS) header analysis
Parameters: max-age, includeSubDomains, preload directives
Preload: HSTS preload list status
Output: HSTS configuration analysis with recommendations