HTTP Strict Transport Security middleware
This middleware adds the
Strict-Transport-Security header to the response. This tells browsers, "hey, only use HTTPS for the next period of time". (See the spec for more.) Note that the header won't tell users on HTTP to switch to HTTPS, it will just tell HTTPS users to stick around. You can enforce HTTPS with the express-enforces-ssl module.
This will set the Strict Transport Security header, telling browsers to visit by HTTPS for the next 180 days:
const hsts =app// Strict-Transport-Security: max-age: 15552000; includeSubDomains
Note that the max age must be in seconds. This was different in previous versions of this module!
includeSubDomains directive is present by default. If this header is set on example.com, supported browsers will also use HTTPS on my-subdomain.example.com. You can disable this:
Some browsers let you submit your site's HSTS to be baked into the browser. You can add
preload to the header with the following code. You can check your eligibility and submit your site at hstspreload.org.
This header will always be set because the header is ignored in insecure HTTP. You may wish to set it conditionally:
const hstsMiddleware =app
This header is somewhat well-supported by browsers.