Netcraftの調査によると、HTTPSサーバーの95%が中間者攻撃に対して脆弱です。したがって、HSTSを適切に実装することが非常に重要です。 HSTS(HTTP Strict Transport Security)は、以前の記事で説明したように、クリックジャッキング、プロトコルのダウングレード、中間者攻撃などの悪意のある攻撃からWebサイトを保護するポリシーです。この記事では、NGINXとApacheでHSTSを有効にするためのさまざまな手順を説明します。
NginxでHSTSを有効にする方法
HSTSを有効にするために必要なドメインのNginx構成ファイルを開きます。
例: /etc/nginx/conf.d/tg.conf
HTTPSのサーバーブロックに次の行を追加します。
HSTSをHTTPブロックに追加しないでくださいadd_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload" always;includeSubDomainsパラメーター
オプションのincludeSubDomains
パラメータは、HSTSポリシーが現在のドメインのすべてのサブドメインにも適用されることをブラウザに通知します。
常にコード> パラメータにより、内部で生成されたエラー応答を含むすべての応答にヘッダーが設定されます。
1年間のHSTSを構成するには、max-ageを31536000(秒単位)に設定します。セキュリティ要件を満たすには、少なくとも3か月は必要です。
Nginxサービスを再起動します
再起動する前に、以下のように構成ファイルを確認してください。
# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Nginxサーバーを再起動して、新しい変更を加えます。
# systemctl restart nginx
ApacheでHSTSを有効にする方法
ApacheでHSTSを有効にするには、 mod_headers
が必要です。 モジュールがインストールされています。以下のコマンドを実行して、モジュールがすでにインストールされているかどうかを確認します。
# apachectl -M | grep headers headers_module (shared)
お持ちの場合は、HSTSを有効にするために必要なドメインのヘッダー設定の構成に進みましょう。 VirtualHost
を含む構成ファイルを開きます SSLを使用します。
For eg: /etc/httpd/conf.d/tg.conf
VirtualHost
内に以下の構成を追加します 以下のポート443の場合:
<VirtualHost *:443> ...... Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" ...... </VirtualHost>を設定します
Apacheサービスを再起動します
再起動する前に、以下のように構成ファイルを確認してください。
# apachectl configtest Syntax OK
構文に問題がない場合は、Apacheサーバーを再起動して新しい変更を加えます。
# systemctl restart httpd ## Redhat systems # systemctl restart apache2 ## Debian systems
それでおしまい! Webサーバーをテストして、HSTSが有効になっているかどうかを確認します。
$ curl -kIs https://example.com | grep Strict Strict-Transport-Security: max-age=31536000; includeSubDomains