私はこのことについて何も知らないので、あなたの返信でELI5をお願いします。HTTPSを.htaccessに強制する以外に、HSTSを有効にする必要がありますか?
私のプロバイダのDreamhostの指示に従って、SSL証明書をインストールしてから、これらの行を.htaccessファイルに追加して、HTTP要求をHTTPS要求に強制的に書き直させました。
# Redirect http requests to https
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
すべてはすなわち、正常に動作しているようだ:私はHTTPでそのドメイン下のページにアクセスしようとするたびに、それはHTTPSに書き換えられ、「セキュア」アイコンがアドレスバーに表示されます。
私の質問は、HSTSも有効にする必要がありますか?これについて読むと、以前の.htaccessファイルの変更と全く同じことをするようです。ここでan excerpt from A2 Hosting(ない私のプロバイダ)です:
HSTSは、Webブラウザが自動的に任意の 安全でない要求(のhttp://)に変更サイト、有効になっている場合HSTSに
を有効にするリクエストを確保する(https://での)。 HSTSを有効にするには が必要です。サイトの.htaccess ファイルにヘッダを追加するだけです。 Webブラウザはこのヘッダーを認識してから、あなたの介入なしに の世話をします。
彼らは.htaccessファイルにこれを追加することをお勧め:
Header set Strict-Transport-Security "max-age=31536000" env=HTTPS
Another tutorialを、Dreamhostのに固有のこの時間は、.htaccessファイルでHTTPSを強制するとともにHSTSを有効にすると言うが、本当に、なぜ言っていません。このページでは、若干異なるものが示唆されています:
Header set Strict-Transport-Security "max-age=31415926; includeSubDomains; preload" env=HTTPS
「https書き換え」コードスニペットとHSTSが必要ですか?または、「httpsリライト」コードスニペットだけで十分ですか? HSTSコードが必要ですか?その場合、私のポストのHSTSコードの2行の違いは何ですか?
2つのHSTSコードの説明に感謝します。しかし、私は "両方"が必要かどうか尋ねたときに私の質問が明らかでなかったと思います。私が「両方」を意味するのは、(私の質問の最上位にある)リダイレクトスニペットとHSTSコードが必要ですか?あるいは、私はただ一つだけを選ぶべきですか?もしそうなら、どちらが、なぜですか? – AlwaysLearning
@AlwaysLearning両方を実行します。リダイレクトのないHSTSは役に立たず、HSTSなしのリダイレクトはMan-in-the-middle攻撃によって傍受される可能性があります。 –
リダイレクトのないHSTSは、ユーザーがHSTSプリロードをサポートする最新のブラウザを使用している場合にのみ有効です。 – EricLaw