将 HSTS 添加到 nginx 配置

将 HSTS 添加到 nginx 配置

我最近更改了我的 nginx 配置,将所有 http 流量重定向到 https(并将所有 www 流量重定向到 no-www)。

是否也应该添加add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;到我的服务器块中?或者说,由于我已经重定向了所有流量,所以没有必要这样做?如果能知道这样做的利弊(如果有的话),那就太好了。


如果相关的话,我当前的虚拟主机配置是:

server {
    server_name example.com www.example.com;

    listen 80;

    return 301 https://example.com$request_uri;
}

server {
    server_name www.example.com;

    listen 443 ssl;

    ssl_certificate /etc/nginx/ssl/cert_chain.crt;
    ... other SSL related config ...

    return 301 https://example.com$request_uri;
}

server {
    server_name example.com;

    listen 443 ssl;
    ... other SSL related config ...

    ... remaining server configuration ...
}

答案1

HSTS 告知浏览器始终使用 https,而不是 http。添加该配置可能会减少从 http 转发到 https 的需要,因此可能非常轻微提高网站性能和非常轻微减少服务器负载。

作为参考,以下是我在基于 Nginx 的网站上使用的安全标头。我将其保存到单个文件中,并将其包含在所有需要它的服务器中,包括 http 和 https 服务器。它允许加载一些常见资源,如 Google 和 Facebook。

# Security headers
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header Content-Security-Policy "default-src 'self' www.google-analytics.com ajax.googleapis.com www.google.com google.com gstatic.com www.gstatic.com connect.facebook.net facebook.com;";
add_header X-XSS-Protection "1; mode=block";
add_header Referrer-Policy "origin";

澄清

您仍然需要将 http 重定向到 https。

答案2

接受的答案很棒,但已经过时,并且存在我在逐行研究时发现的缺陷。

HSTS 标头的持续时间必须至少为三个月才能满足安全要求。我在安全标头代码片段中使用了以下内容,以在 SSL 测试中获得 A+:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";

其次,使用X-Frame-Options已弃用(并且从未得到许多/大多数主流浏览器的支持)。当前标准(即在所有主流现代浏览器中实施)是Content-Security-Policy(CSP)。

add_header Content-Security-Policy 'frame-ancestors https://mywebapp.mywebsite.example';

从示例中可以明显看出,CSP 标头必须根据每个站点进行设置(除非我还没有见过的巧妙的正则表达式/等等)。

答案3

我建议指定always参数以add_header将此标题也包含在内部生成的错误页面中。

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

此外,添加preload到响应头中这样你以后就可以将你的网站添加到预加载列表中

相关内容