すべての解説
深刻度:高リダイレクトチェーン

なぜサイトにHTTP→HTTPSのリダイレクトが必要か

HTTPSが使えても、サイトはHTTPのリクエストをHTTPSへ能動的にリダイレクトする必要があります。そうしないと、HTTP版に到達したユーザーは、暗号化されず傍受可能な接続のままになります。

これは何か

誰かが https:// を付けずに yourdomain.com と入力すると、ブラウザはまずHTTPを試します。あなたのサーバーがポート80でリダイレクトではなくコンテンツを返すと、そのページの読み込みは暗号化されません。

対策は、すべてのHTTP URLから、同じドメインの対応するHTTPS URLへの恒久的(301)リダイレクトです。

なぜ重要か

暗号化されていない通信は、ネットワーク経路上の誰か——公共Wi-Fi、侵害されたルーター、ISP——に読まれたり改ざんされたりする可能性があります。これには、フォームのデータや、Secure フラグのないCookieも含まれます。

誤ったドメインを指すリダイレクトや、何段も続くチェーンは、遅延を増やし、それ自体が設定ミスや乗っ取りの兆候であることもあります。

直し方

nginxでリダイレクトする

ポート80では、HTTPSへの単一の301で応答してください。

server {
  listen 80;
  server_name yourdomain.com;
  return 301 https://$host$request_uri;
}
HSTSと組み合わせる

リダイレクトは最初の1ホップを処理します。HSTSはその後、以後のアクセスでHTTPを完全に飛ばすようブラウザに伝えます。両方を併用してください。

チェーンを短く保つ

www/非www や末尾スラッシュの亜種を経由して跳ね回るのではなく、HTTPから正規のHTTPS URLへ1ホップで直接リダイレクトしてください。

FAQ

SSL証明書があれば十分ではないのですか?

いいえ。証明書はHTTPSを可能にしますが、リダイレクトがなければ、ユーザーは依然としてHTTP版を読み込めます。両方が必要です。

301と302のどちらのリダイレクトですか?

301(恒久)を使ってください。キャッシュ可能で、HTTPSが正規のバージョンであることをブラウザや検索エンジンに伝えます。

あなたのアプリは大丈夫ですか?

AppSafeなら、この問題を含む数十項目を1回の無料スキャンでチェックできます。

アプリを無料でスキャン