webzod
account

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

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. Enable mod_headers once (a2enmod headers on Debian and Ubuntu).
  2. Put the line in the VirtualHost that serves port 443. Header always set sends it on error responses too.
  3. Run apachectl configtest, reload, and check with curl -sI.
  4. Raise max-age in the stages from the generic steps (86400, then 2592000, then 31536000).
/etc/apache2/sites-available/site-ssl.conf
<VirtualHost *:443>
    Header always set Strict-Transport-Security "max-age=300"
</VirtualHost>

Read the documentation (opens in a new tab)

Scan your domain to see whether this applies to you.