myesn

myEsn2E9

hi
github

nginx: HSTS 設定とクリア

はじめに#

HSTS が何を意味するかを最初に理解しましょう。

簡単に言うと、ブラウザにこのドメインとすべてのサブドメインが将来的に https を強制してアクセスするように伝える応答ヘッダを返すことです。これにより、ウェブサイトのアプリケーションはリダイレクト作業を行う必要がなくなり、より安全になります。

includeSubDomains#

注意すべき点は、includeSubDomains 指示を追加した場合、HSTS ルールがすべてのサブドメインに適用されるということです。例えば、example.com にこの指示を追加した場合、以下のサブドメインにもこの HSTS ルールが適用されます:

  • example.com
  • example.com:* 任意のポート
  • *.example.com
  • *.example.com:* 任意のポート

nginx での設定#

server {
    ..

    # HSTS
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains=false;" always;

    ..
}

includeSubDomains=false はサブドメインにルールを適用しないことを意味します。

サブドメインへの適用を禁止する#

現在指定されたドメインのみを設定し、サブドメインに影響を与えたくない場合は、次のように追加できます:

includeSubDomains=false;

ブラウザに適用された HSTS ルールをクリアする#

誤った HSTS ルールを設定し、すでにブラウザに適用されている場合、次の 2 つの方法で解決できます:

  1. ブラウザのすべてのキャッシュをクリアする
  2. 以下のコードを追加して即座に無効にし、nginx を再起動する:nginx -s reload、その後再度ブラウザにアクセスし、アクセスした後、以前に設定した HSTS が無効になります:
    add_header Strict-Transport-Security "max-age=0" always;
    
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。