Nginx 开启HSTS

我的网站一直都加了证书,开启了http2,既是安全保障,请求并发也有了优势,不用特别去用雪碧图,减少js、css的数量来提升网站加载速度了。证书当然是用的免费的 Let’s Encrypt 证书了,Let’s Encrypt 支持泛域名,可以说非常方便了。

背景

我一直使用以下配置将http强制跳转到https。

server
{
    listen 80;
    server_name fishliu.com;
    rewrite ^(.*)$ https://$host$1 permanent;
}

今天想着还是开启一下HSTS,避免初始的http请求被劫持。

HTTP Strict Transport Security (通常简称为HSTS) 是一个安全功能,它通过服务器response header的形式告诉浏览器只能通过HTTPS访问当前资源, 禁止HTTP方式.

Nginx开启HSTS

listen 443 ssl http2;
server_name fishliu.com;
# 添加一个响应头就能开启
add_header Strict-Transport-Security "max-age=63072000;
includeSubdomains; preload";
  • max-age 表示STS 策略的过期时间,也就是浏览器在收到带有 Strict Transport Security – response header 多久后过期,就可以转为http 请求。
  • includeSubdomains 表明 STS 策略也应用到 当前域名的子域名。

最后

最后你还可以去hstspreload.org 站点去提交Preload List,主流的浏览器就会强制你的站点访问https站点

Last modification:June 30, 2021
如果觉得我的文章对你有用,请随意赞赏