HSTS の max-age が有効ではない/Nginx で更新されない

HSTS の max-age が有効ではない/Nginx で更新されない

Debian10と新しいNginx1.20.1を使用してチェックすると、 次のよう curl -I https://example.comになります。Strict-Transport-Security: max-age=2592000https://www.ssllabs.com/ssltest/analyze.html、私はその結果を

厳格なトランスポートセキュリティ (HSTS) はい 短すぎます (180 日未満) max-age=2592000

すべての nginx.conf とすべてのインクルード ファイルを検索しましたが、ディレクティブが見つかりませんadd_header Strict-Transport-Security ...

そこで、サーバー ブロック、http ブロック、ロケーション ブロックのすべてに次の行を追加し、そのうちの 1 つでさまざまなケースをテストしました。

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

そして、上記のリンクを再度確認したところ、結果は次のようになりました。

厳格なトランスポート セキュリティ (HSTS) 無効なサーバーが複数の HSTS ヘッダーを提供しました

幸いなことに、上記の両方のケースでは、Firefox ブラウザで応答ヘッダーを確認すると、新しく追加したディレクティブは再び有効になりませんmax-age2592000

私は DNS サーバーとして cloudeflare を使用しているため、ダッシュボードで HSTS を有効/無効にしましたが、変化は見られませんでした。

Nginxの のデフォルト値を見つける方法Strict-Transport-Security max-ageと、それを効果的に変更する方法を説明します。

答え1

Cloudflare は、世界中の人々が目にする TLS 終端エンドポイントです。そのため、HSTS ヘッダーを設定します。オリジン HSTS ヘッダーは Cloudflare によって無視されます。

Cloudflare コントロール パネルで HSTS 設定を変更する必要があります。

答え2

私の Web アプリは ASP.net コアで作成されており、startup.cs で HTTPS が有効になっている場合、HSTS のデフォルト値は 30 日です。これにより、nginx 構成が重複し、アナライザーでエラーが発生するようになりました。

関連情報