投稿

ラベル(AWS)が付いた投稿を表示しています

ロードバランサーを使った構成で、HTTPをHTTPSにリダイレクトする

Follow @venividivici830 X-Forwarded-Protoを使う場合と、使わない場合で、まとめてみました。 AWSだと、 このドキュメント にやり方が書いてありますね。 手元にAWS環境がないから試せないけど、流れとしては、下記のような感じだと思います。 ロードバランサーに対してHTTPでアクセスされても、HTTPSでアクセスされても、バックエンドWebサーバー(ロードバランサーに紐付いたサーバー)の80番ポートに転送する バックエンドWebサーバー側では、 X-Forwarded-Proto リクエストヘッダー を利用して、ロードバランサーに対してHTTPでアクセスされたか、HTTPSでアクセスされたかを判定する ロードバランサーに対してHTTPでアクセスされた場合、URLを書き換える .htaccess の使用は推奨されていない こと、初めて知りました。 VirtualHostを使え と。 下記、上記ドキュメントから引用。 仮想ホストファイルまたは .htaccess ファイルのいずれかで、mod_rewrite ルールを使用します。リダイレクトルールには仮想ホストファイルを使用することをベストプラクティスとして推奨しています。 注: .htaccess の使用は推奨されません。メインの構成ファイルにアクセスできない場合にのみ使用するようにしてください。 Apacheのサイトでも説明されていますね。 一般的に、サーバの主設定ファイルにアクセスできない場合を除いて、 .htaccess ファイルの使用は極力避けてください。 「HTTP HTTPS リダイレクト」とかで検索すると、.htaccessを利用した例がたくさん出てくるので、注意ですね。 X-Forwarded-Protoは、 ここ に説明されていますね。 バックエンドWebサーバーから見ると、ロードバランサーにHTTPでアクセスされても、HTTPSでアクセスされても、(上の例では)バックエンドWebサーバーの80番ポートに転送されるので、クライアントがHTTPでアクセスしたか、HTTPSでアクセスしたかを、RewriteCond %{HTTPS} offとかだと判定できません。 X-Forwarded-Pro...