🔒 セキュリティ診断チェッカー
セキュリティヘッダー2025-02-15

HSTS(HTTP Strict Transport Security)とは?設定しないリスクと対策

HSTSHTTPS中間者攻撃セキュリティヘッダー

HSTSとは

HSTS(HTTP Strict Transport Security)とは、Webサーバーからブラウザに対して「今後はHTTPSでのみアクセスしてください」と伝える仕組みです。

サーバーがHTTPレスポンスヘッダーに以下のような情報を含めることで、ブラウザに指示を出します:

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

この設定を受け取ったブラウザは、指定された期間(上の例では1年間)、そのサイトへのアクセスを自動的にHTTPSに変換します。ユーザーがhttp://でアクセスしようとしても、ブラウザが勝手にhttps://に書き換えてくれるのです。

HSTSがないとどうなる?中間者攻撃の例

HSTSが設定されていないと、中間者攻撃(Man-in-the-Middle Attack)のリスクがあります。

具体的なシナリオを見てみましょう:

HSTSが設定されていれば、ブラウザは最初からHTTPSで接続するため、HTTPでの通信が発生せず、この攻撃を防げます。

設定方法(nginx / Apache)

nginxの場合

server {
    listen 443 ssl;
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
}

Apacheの場合

<VirtualHost *:443>
    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
</VirtualHost>

設定のポイント:

HSTS Preloadリスト

HSTSには一つ弱点があります。ユーザーが初めてそのサイトにアクセスするときは、まだHSTSの情報がブラウザに保存されていないため、HTTPで接続される可能性があります。

この問題を解決するのがHSTS Preloadリストです。これはブラウザにあらかじめ「このドメインは常にHTTPSで接続する」という情報を組み込む仕組みです。

hstspreload.orgから登録を申請できます。登録されると、Chrome、Firefox、Safariなどの主要ブラウザが、初回アクセスからHTTPSを強制するようになります。

注意:preloadリストへの登録は簡単に取り消せません。すべてのサブドメインを含め、恒久的にHTTPSを使う覚悟が必要です。

あなたのサイトは大丈夫?

無料でセキュリティスコアをチェックできます。

今すぐ診断する →

📖 関連記事