人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Redmine が、リダイレクト先のURLを https:// で返すようにする方法はありませんでしょうか。

Redmine を社内LANからデータセンターに移すことになったのですが、データセンターでは門番にSSLアクセラレータ兼リバースプロキシが構えており、外部(社内LAN)からのアクセスがHTTPSとなりました。
ほとんどの機能はそのままで動くのですが、新規書き込みを行った後などにリダイレクトが入ると、リダイレクト先として http:// のURLを返してしまうらしく、データセンターでは HTTP 接続は受け付けていませんので、作業的に無応答となります。

使用しているのは RedmineLE 0.1.0 です。
Redmine 0.9.x / Ruby 1.8.7 / Ruby on Rails 2.3.4 が入っています。

何かいい方法がありませんでしょうか。教えてください。

●質問者: いずどん
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● JULY
●150ポイント ベストアンサー

「SSLアクセラレータ兼リバースプロキシ」が何か? ということで適切な方法が変わってくると思いますが、Redmine(にかぎらず、Rails アプリケーション)側としては「X_FORWARDED_PROTO」ヘッダを受け取れると辻褄が合うようになるようです。

FAQ - Redmine
ApacheをプロキシにしたRailsアプリでhttpsがリダイレクト時にhttpになる問題 - Qiita

上記ページに、リバースプロキシが Apache の場合での設定例が出ていますが、同じことが、実際にお使いの「SSLアクセラレータ兼リバースプロキシ」で出来れば、Redmine 側はそのままで良い事になると思います。


いずどんさんのコメント
ご回答ありがとうございます。ご指摘の「SSLアクセラレータ兼リバースプロキシ」は、シスコ社製のハードウェアです。データセンターの所有物となり各社共用ですので設定をそう簡単には変えられません。 「Rails側としては X_FORWARDED_PROTO を受け取れればよい」ということ。 この点、RedmineLE 付属の Apache の httpd.conf あたりをうまく編集すれば可能となるものなのでしょうか。そのあたりをもしわかれば教えていただきたく存じます。(Railsに関しては無知なもので)。

JULYさんのコメント
この Apache での例は、リバースプロキシが Apache の場合なので、Redmine 側の Apacche の話ではないです。 > データセンターの所有物となり各社共用ですので設定をそう簡単には変えられません。 そうですかぁ。 一応、CISCO 製品のコンフィギュレーションでも >|| header insert request X-Forwarded-Proto header-value 'https' ||< といった感じで、同様の事ができそうな雰囲気でしたが、共用の機器だとデータセンター側が対応してもらえるか、という事になりますね。 Redmine 側の Apache で例の設定を入れて効果があるかどうかが微妙(おそらく、Apache httpd と rails の間は passenger という Apache モジュールでやりとりしているはずで、この Apache の設定で rails 側に渡る情報が意図したものになるかが不明)ですが、ダメ元でやっていみる価値はあると思います。

いずどんさんのコメント
情報ありがとうございます。 いただいた情報を頼りにいろいろ試しました結果、問題解決に至りました! 「Rails側としては X_FORWARDED_PROTO を受け取れればよい」という情報を 頼りにまずは Firefox に Modify Headers というプラグインを導入。 手動でヘッダ X_FORWARDED_PROTO を追加し、値 https を設定して アクセスしたところ、期待の動作(https:// のURLへのリダイレクト)と なることを確認しました。 次いで、RedmineLE をよく確認したところ、Apache に Passenger プラグイン の構成ではなく、旧式の mongrel サーバで Rails を動かし、Apache は mongrel に リバースプロキシする構成であることが判明。 ブラウザ └ データセンタリバースプロキシ └ Apache(リバースプロキシ) ← └ mongrel(Railsサーバ) すなわち、(自社のコントロール下にある)Apache に設定をすることにより、 mongrel(Rails)に X_FORWARDED_PROTO ヘッダを渡せることがわかり、 リバースプロキシ設定の書かれたファイル apache/conf/conf.d/proxy.conf の 末尾に<pre>RequestHeader set X_FORWARDED_PROTO 'https'</pre>を追記したところ、見事に問題は解決しました。 おかげさまで、約30名ほどのユーザの不便を解消することができました。 有益な助言をありがとうございました。 * ? * ? *

2 ● snow0214
●50ポイント

VirtualHostの設定の中にこの設定を追加してみてください。

RequestHeader set X_FORWARDED_PROTO 'https'

Redmineハマリメモ httpsのvirtualhostしてもどうしてもhttpにリダイレクトされる

http://d.hatena.ne.jp/stepupeng/20110221/1298291757


いずどんさんのコメント
ご回答ありがとうございます。 外部ネットワークとデータセンタの境界に位置するSSLアクセラレータ兼リバースプロキシは、シスコ社製のハードウェアで、各社共用のため設定の変更が困難です。 Apache によるSSLやリバースプロキシなら、ネット上にそれなりにノウハウが散見されるのですが、今回そうでないために、難儀しています。

質問者から

質問文中の「SSLアクセラレータ兼リバースプロキシ」は、シスコ社製のハードウェアです。データセンターの所有物となり各社共用ですので設定をそう簡単には変えられません。

RedmineLE 付属の Apache の httpd.conf や、Redmine ないし Rails の設定ファイルやソースコードを一部変更することで対応できたりするのであれば、その方法を知りたいと思います。


関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ