🔒 Webセキュリティ設定チェッカー
セキュリティヘッダー公開: 2025-02-15

HSTSとは?設定しないと中間者攻撃される?仕組みと対策を解説

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を使う覚悟が必要です。

関連記事

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

無料でセキュリティ設定をチェックできます。

今すぐチェックする →

🗺️ 次に読むページ

比較記事ハブとHTMLサイトマップから、主要ページへたどりやすくしています。

基礎から読み直す

📖 関連記事