HSTSとは
HSTSとは、Webサイトを常にHTTPSで接続させるためのセキュリティ機能です。
正式名称は HTTP Strict Transport Security です。「Hypertext Strict Transport Security」と書かれることもありますが、一般的には HTTP Strict Transport Security(HSTS) と呼ばれます。
HSTSを設定すると、ユーザーが http://example.com にアクセスしても、ブラウザが自動的に https://example.com へ接続します。
HSTSの目的
HSTSの主な目的は、HTTP接続を防ぎ、通信を安全なHTTPSに固定することです。
通常、WebサイトではHTTPからHTTPSへリダイレクトする設定を行います。しかし、最初にHTTPでアクセスした瞬間は、通信が暗号化されていない状態になります。
このタイミングを狙われると、第三者によって通信を盗み見られたり、偽サイトへ誘導されたりする可能性があります。
HSTSを有効にすると、ブラウザはそのサイトに対して「今後は必ずHTTPSで接続する」と記憶します。
HSTSの仕組み
Webサーバーは、以下のようなHTTPレスポンスヘッダーを返します。
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
それぞれの意味は以下の通りです。
- max-age=31536000:HSTSを有効にする期間。31536000秒は約1年
- includeSubDomains:サブドメインにもHSTSを適用する
- preload:HSTSプリロードリストへの登録を想定した指定
HSTSのメリット
HSTSを設定することで、以下のような効果があります。
- HTTP接続を防げる
- HTTPSへの接続を強制できる
- 中間者攻撃のリスクを減らせる
- SSL/TLS対応サイトとしての信頼性を高められる
特に、ログインフォームやお問い合わせフォーム、決済ページなど、個人情報を扱うサイトでは重要な設定です。
注意点
HSTSは便利な反面、設定ミスには注意が必要です。
一度ブラウザに記憶されると、max-age の期間中はHTTPS接続が強制されます。そのため、SSL証明書の期限切れやHTTPS設定の不備があると、サイトにアクセスできなくなる可能性があります。
まずは短い期間でテストし、問題がないことを確認してから長めの max-age を設定するのがおすすめです。
まとめ
HSTSとは、Webサイトへの接続をHTTPSに固定するためのセキュリティ設定です。
HTTP接続による盗聴や改ざんのリスクを減らし、安全な通信を維持するために役立ちます。ただし、SSL証明書やHTTPS設定が正しく整っていることを確認したうえで導入することが大切です。

