2026年8月21日
2026年8月21日
HSTSを設定してHTTPSを強制する方法
ステップ1: Apacheの設定ファイルを開く
まず、Apacheの設定ファイルを編集します。一般的には/etc/apache2/sites-available/000-default.confや/etc/httpd/conf/httpd.confに接続情報が記述されています。
# Apacheの設定ファイルを開きます。
sudo nano /etc/apache2/sites-available/000-default.conf
# または、OpenSSLを使用する場合
sudo nano /etc/httpd/conf/httpd.conf
ステップ2: HSTSヘッダーを追加する
ServerAdmin, DocumentRootなどの設定の直下に以下のように記述します。
# HSTSヘッダーを追加します。
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
max-ageは有効期間を秒で指定し、includeSubDomainsはサブドメインもHSTSの対象にするためのオプションです。
ステップ3: サーバー再起動
設定を保存したら、Apacheサーバーを再起動して変更を適用します。
# Apacheサーバーを再起動します。
sudo systemctl restart apache2
ステップ4: HTTPS接続の確認
ブラウザからウェブサイトにアクセスし、HTTPS接続が正しく確立されていることを確認してください。ChromeやFirefoxなどの最新版ブラウザでは、HTTPのアクセスは自動的にリダイレクトされます。
注意事項
- SSL証明書の取得: HSTSヘッダーを設定する前には、HTTPS接続に必要なSSL証明書が必要です。
- サブドメインへの展開:
includeSubDomainsオプションを使用すると、サブドメインも一括でHSTS対象になりますが、各サブドメインでも独立した設定が必要な場合もあります。 - 期限切れの警告: HSTSヘッダーは最大1年間有効なので、期限が切れる前に再設定する必要があります。
まとめ
1. Apache設定ファイルを開く:Apacheの設定ファイルを確認し、編集します。
2. HSTSヘッダー追加:Header always setコマンドを使ってHSTSヘッダーを追加します。
3. サーバー再起動:変更を反映するためにApacheサーバーを再起動します。
4. HTTPS接続の確認:ブラウザからウェブサイトにアクセスし、HTTPS接続が正しく確立されていることを確認します。
関連記事: