ページ更新日:2026/04/24
HSTS(HTTP Strict Transport Security)は、Webサーバーがブラウザに対して「このサイトには常にHTTPSで接続してください」と指示するセキュリティ機能です。
一度アクセスしたブラウザは、指定期間中は自動的にHTTPSでのみ接続するようになり、中間者攻撃(MITM)やSSLストリッピング攻撃を防止します。
HSTSは、サーバーがHTTPSレスポンスに以下のようなヘッダーを付与することで機能します:
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
| パラメータ | 説明 |
max-age=31536000 |
ブラウザがHTTPS強制を記憶する期間(秒)。31536000秒=1年。 |
includeSubDomains |
サブドメインにも同じポリシーを適用する。 |
preload |
HSTSプリロードリストへの登録を許可。ブラウザ出荷時からHTTPSを強制。 |
server {
listen 443 ssl;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
...
}
# mod_headers モジュールが必要 Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Strict-Transport-Security" value="max-age=31536000; includeSubDomains" />
</customHeaders>
</httpProtocol>
</system.webServer>
Chrome・Firefox・Safari・Edgeなどの主要ブラウザは HSTSプリロードリスト(hstspreload.org)を持っており、リストに登録されたドメインには初回アクセスからHTTPSが強制されます。
登録するには以下の要件を満たす必要があります:
max-age=31536000(1年以上)、includeSubDomains、preload が含まれること登録は hstspreload.org から申請できます。
includeSubDomains を省いてください。max-age=300)でテストし、問題がなければ長期間に変更することを推奨します。
📌 関連ページ:
NginxへのSSL証明書インストール手順
ApacheへのSSL証明書インストール手順
証明書透明性(CT)ログとは?
SSLとTLSの違い・TLSとは何か