Nginx

將 HSTS 添加到 nginx 配置

  • September 20, 2020

我最近更改了我的 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 ...
}

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 重定向。

引用自:https://serverfault.com/questions/874936