2013年7月26日金曜日

【apache】ロードバランサ+SSLアクセラレータがある場合のhttp→httpsリダイレクト方法

■概要
ロードバランサ(LB)にSSLアクセラレータ機能がある場合、LBで443を受け、後ろのWebサーバは
80で受けるのが定石になっています
その場合、追加のポートとしてLBで80を受けてWebサーバの80に流すことはできますが、その場合は
当たり前ですがhttpでのアクセスになります
httpでアクセスしてもhttpsにリダイレクトされる方法をapacheを使って紹介します

■構成
80で受けた場合はリダイレクト用のポートに流してあげます
ここではリダイレクト用のポートを1080とします
80(LB)→1080(Web)→リダイレクト→443(LB)→80(Web)

■設定
VirtualHost 1080用の設定ファイルにリダイレクトするための設定を記載します
<Virtualhost *:1080>
  ServerName www.test.com

  RewriteEngine On
  RewriteLog "logs/ssl_rewrite_log"
  RewriteLogLevel 0
  RewriteCond %{SERVER_PORT} !^443$
  RewriteRule ^(.*)$ https://www.test.com%{REQUEST_URI} [R,L]
</Virtualhost>

ServerNameは必要に応じて設定してください
mod_rewriteが必要になりますのでapacheで有効にしてください
mod_rewriteのインストール方法も紹介しています
http://kakakikikeke.blogspot.jp/2013/06/apachehttphttps.html

RewriteCond は443以外のアクセスだった場合としています
この場合は絶対443にはならないのでその後のRewriteRuleでhttpsのURLに強制リダイレクトします


やっていることは非常に単純ですが、これでhttpにアクセスしてもhttpsにリダイレクトされるようになります
他にもやる方法はあると思いますので参考までに見てください

0 件のコメント:

コメントを投稿