[AWS]nginx+ELBにてhttpアクセスをhttpsにリダイレクトする設定

[AWS]nginx+ELBにてhttpアクセスをhttpsにリダイレクトする設定

elb_http_to_https_top

ELB 経由の HTTP トラフィックを HTTPS にリダイレクトする

AWS上でELBを設定したEC2インスタンスにて、http 接続してきたユーザーを https にリダイレクトする方法をご紹介します。

通常は、ウェブサーバー内の設定で http で接続したとき、https にリダイレクトすれば問題は解決します。ただ ELB 経由の EC2 インスタンスへのアクセスは、ユーザーが http 接続しても https 接続をしても EC2 に到達した時点では http 通信になります。通常の設定を行うと無限ループに陥ります。

〇図解
ユーザー -(https接続)→ ELB -(http接続)→ EC2
ユーザー -(http接続)→ ELB -(http接続)→ EC2

ということで、nginx + ELB 環境にて http 接続を https にリダイレクトする設定を確認していきます。

Advertisement

nginx にて https にリダイレクトする設定

$http_x_forwarded_proto

nginx にて HTTPS でリダイレクトするために、AWS では変数「$http_x_forwarded_proto」を提供しています。ユーザーが ELB に HTTP で接続してきたとき、$http_x_forwarded_proto に http と設定されているので、これを元に https へのリダイレクトを行います。

〇AWS 公式「ELB の Classic Load Balancer で HTTP トラフィックを HTTPS にリダイレクトする方法を教えてください。」
https://aws.amazon.com/jp/premiumsupport/knowledge-center/redirect-http-https-elb/

 

実際に nginx を設定した conf ファイルの設定サンプル

Advertisement

この記事が気に入ったら
いいね ! をお願いします

Twitter で

インフラカテゴリの最新記事