Rails3.2のWebアプリケーションをhttpsアクセスで使用する場合、通常SSLアクセラレータまでをSSL通信し、そこから内部の通信はhttpで行うことが多い思います。

こういう経路です。

INTERNET
 ↓ https
SSL ACCELERATOR
 ↓ http
Nginx
 ↓ Passenger module
Rails App

RailsはHTTPで動いているため何もしないとredirect_toでリダイレクトした場合httpプロトコルでリダイレクトされてしまいHTTPSのみ許可している場合アクセス不能になります(-ω-)

RailsはX-Forwarded-ProtoというHeaderにhttpsがわたってくればSSLモードで動いてくれてhttpsのリダイレクトがされるのですがNginxでそれを設定する方法を検索してみると

proxy_set_header X-Forwarded-Proto https;

こればかり引っかかり、設定してみても一向に効かない...

良く考えてみるとPassengerはProxyでなくCGIじゃまいか!

ここで本家ドキュメントをよく読んでみると

Phusion Passenger users guide, Nginx version (5.5.3. passengersetcgi_param <CGI environment name> <value>) でHeaderを設定することができそうです。

ドキュメントをよく読んで

passenger_set_cgi_param HTTP_X_FORWARDED_PROTO https;

こう設定することによって、やっと思い通りの動きをしてくれました。ヽ(´ー`)ノ

ハマった〜(>ω<)