webzod
account

Add the Strict-Transport-Security (HSTS) header on Caddy

tls.hsts.missing · effort: about an hour

Why it matters

Without HSTS, a browser that is sent to the http:// address first can be intercepted before it reaches the secure site. The header tells browsers to use HTTPS only, for as long as you specify.

Staged change. Do this in stages and check each one before the next, so a mistake does not break your site or your mail.

The fix

  1. Caddy serves HTTPS and redirects http:// to https:// by default, but it does not add HSTS by itself.
  2. Add the header with the header directive in the site block and reload Caddy.
  3. Raise max-age in the stages from the generic steps (86400, then 2592000, then 31536000).
Caddyfile
example.com {
	header Strict-Transport-Security "max-age=300"
}

The examples use example.com. Replace it with your own domain.

Read the documentation (opens in a new tab)

Scan your domain to see whether this applies to you.