Skip to content

HTTPS

criticalsecurity-httpsreviewed

Serving a site over plain HTTP exposes every request to anyone on the path. The redirect config for nginx, Apache and Netlify, and what comes next.

What it is

This check reads the scheme of the URL that was scanned and fails when it is http rather than https. It is the first security check to run, and when it fails the rest are skipped — there is no useful question to ask about a Content-Security-Policy header on a connection anyone can rewrite in transit.

It is the one check here with no nuance to it. Certificates have been free and automatable for a decade.

Why it matters

On plain HTTP every request and response travels in the clear: what was read, what was submitted, what came back. Anyone on the path — a coffee shop network, a compromised router, an ISP — can read it and, more importantly, change it before it arrives.

The change-it-in-transit part is what most people underestimate. HTTP does not merely fail to keep a page private; it fails to guarantee the page a visitor sees is the page you sent.

How to fix it

with a reference doc
nginx
server {
  listen 80;
  server_name example.com;
  return 301 https://$host$request_uri;
}
.htaccess
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
_redirects
http://example.com/*  https://example.com/:splat  301!

Reference documentation

Related checks

4
mediumStrict-Transport-Security (HSTS) headerStrict-Transport-Security (HSTS) is a response header that tells a browser to only ever connect to this host over HTTPS, for a duration set by max-age, without first trying HTTP.criticalSSL certificate validityThis checks the TLS certificate a server presents on port 443: whether it has expired, whether it's about to, and whether the hostname being scanned actually appears in the certificate's subject or Subject Alternative Names.highMixed contentMixed content is any http:// resource — a script, stylesheet, image or iframe — loaded on a page served over https://. The page itself is encrypted; the mixed-content resource is not.mediumwww and non-www canonicalizationThis check takes the host you entered, works out its counterpart — adding www. or removing it — and requests that. If the counterpart answers without redirecting to the host you entered, both are serving the site independently.

This is one of the 75 checks the scanner runs. See what we check for the full list, every severity weight, and how the score is computed from them.

See whether your own site passes https.

One page, all 75 checks, free. No account, no card.

Check this on my site