質問編集履歴

1 情報に不足があったため追記。

mennti

mennti score 4

2017/06/10 15:46  投稿

RedmineがリダイレクトするURLをhttpからhttpsにする方法について
長文になり大変申し訳ないですが、もしタイトルに記載した件についてご存知の方や同じ事象に遭遇した方がいましたら、ご回答の程よろしくお願い致します。
###経緯と発生した事象
今回データセンター内のサーバにRedmineのインストールを行いました。
特段問題なくインストールは完了し、Redmineのホーム画面への接続と表示確認もできましたが、管理者アカウント「admin」の初期パスワード変更のためログインをしようとした際(adminのパスワードを入力し、ログインボタンを押下)、応答が返ってこなくなりました。
最終的には、タイムアウトとなります。
###Redmineサーバについて
以下URLの構築手順を元に作成しました。
ただし、OSはRHEL6.6。DBは、MySQLなどの違いはあります。
http://blog.redmine.jp/articles/3_3/install/centos/
###Redmineサーバへの接続について
PCからRedmineサーバには、LBを経由して接続します。その際の通信は以下となります。
[PC] ─ HTTPS → [LB] ─ HTTP → [Redmineサーバ]
※LB以降からデータセンターとなります。また、LBはHTTPSリクエストのみ受け付けるようになっています。
###確認してわかっていること
以下箇条書きで記載いたします。
①タイムアウトした際のWebブラウザーのURLに「http://[RedmineへのIPorホスト名]/redmine/my/page」と表示されていた。
②上記事象発生時にリアルタイムでRedmineのログを確認してみたところ、リダイレクトとして①のURLが出力された後、HTTPステータスコード「302」の出力を最後にそのあとは何もログに出力されず。
また、apacheを使用してRedmineサーバへのリクエストを受け付けるようにしているのですが、apache側のaccess_logにも「302」を出力。
###発生事象の原因(推測)
Redmineからリダイレクトとして返ってくるURLがhttpのため、LB側の設定(もしくは、データセンター側での何かしらの設定)ではじかれる→無応答となってしまっているのではと推測。
###試したこと
URLのヘッダーをhttpからhttpsにするため、Apache側のhttpd.confに対してネットから検索してきた以下設定を追加するなどしましたが、事象は解消されませんでした。
(設定の追加は、単純に対象定義ファイルの最後に以下設定をそのまま追記する形で行いました。)
RequestHeader set X_FORWARDED_PROTO 'https'
RequestHeader set X_FORWARDED_PROTO 'https'
ProxyPass /redmine http://[RedmineへのIPorホスト名]/redmine
ProxyPassReverse /redmine http://[RedmineへのIPorホスト名]/redmine
<Directory />
 <IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteCond %{HTTPS} off
   RewriteCond %{REQUEST_URI} (^.*/redmine/.*$)
   RewriteRule /.*$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
 </IfModule>
</Directory>
<Directory />
 <IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteCond %{HTTPS} on
   RewriteCond %{REQUEST_URI} !(^.*/redmine/login.*$)
   RewriteCond %{REQUEST_URI} !(^.*/redmine/stylesheets.*$)
   RewriteCond %{REQUEST_URI} !(^.*/redmine/javascripts.*$)
   RewriteRule /.*$ http://%{HTTP_HOST}%{REQUEST_URI} [R,L]
   RewriteCond %{HTTPS} off
   RewriteCond %{REQUEST_URI} (^.*/redmine/login.*$)
   RewriteRule /.*$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
 </IfModule>
</Directory>
###質問させて頂きたいこと
タイトルにも記載させていただきましたが、RedmineがリダイレクトするURLをhttpからhttpsにする方法を教えていただきたいと考えています。
もし、「試したこと」に記載されている内容で設定方法が違う。そもそも推測が違うのではなどの指摘もありましたら、そちらも併せて教えていただきたいと考えています。
また、LBの設定については変更できないため、Redmineサーバ側で対応できる方法でお願いしたいと考えています。  
 
以上となります。
ご確認の程何卒よろしくお願い致します。
  • Apache

    2230 questions

    Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

  • Redmine

    235 questions

    Redmineは、プロジェクトのタスク管理、進捗管理、情報共有が可能な、 オープンソースプロジェクト管理ソフトウェアです。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る