質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.32%

RedmineがリダイレクトするURLをhttpからhttpsにする方法について

受付中

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 3,938

mennti

score 4

長文になり大変申し訳ないですが、もしタイトルに記載した件についてご存知の方や同じ事象に遭遇した方がいましたら、ご回答の程よろしくお願い致します。

経緯と発生した事象

今回データセンター内のサーバに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サーバ側で対応できる方法でお願いしたいと考えています。

以上となります。
ご確認の程何卒よろしくお願い致します。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

0

Redmine の設定は、どうなっているのしょうか?

Redmine にログインできるのであれば、「管理」→「設定」の中に「プロトコル」という項目がありますが、これは、「https」になっているでしょうか?

ログインができない場合は、設定された値は、redmine のデータベースに保存されていますので、redmine のデータベースの 「setting」テーブルを参照すると

name            value
----------------------------
protocol        https


の様に登録されいていると思いますので、こちらを直接変更することになると思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/06/12 06:47

    ご回答ありがとうございます。
    少し時間が空いてしまいましたが、先ほど対象テーブルについて確認いたしました。

    初期構築状態のためかsettingテーブルの中身は空(データ件数0)でした。

    これは、何かやらなければいけない作業が抜けていたからでしょうか。
    (一応、参考にした手順にある初期データの登録はしています。)

    Redmineの設定についてですが、インストール後、特に設定についてはやっていないため、初期状態となります。

    キャンセル

  • 2017/06/12 12:28 編集

    ソースコードを見ていないので推測ですが、おそらく settings には、管理画面から設定を変更して保存した場合に変更した内容が保存されるのではないかと思います。


    データベースにある settings テーブルに保存される項目の初期値は、redmine の home ディレクトリ/conf/settings.yml に記載されています。

    settings.yml に プロトコルを設定している部分が、下記の様にありますので、一時的に変更して redmine を再起動してから URLにアクセスすると https でリダイレクトして、ログインできたりしないでしょうか? ( 下記の http の部分を https に変更。うちの環境では、85行目ぐらいにありました。)

    ```
    protocol:
    default: http
    ```
    接続できたら、管理画面から設定を開いて、一度「保存」ボタンを押してみてください。

    キャンセル

  • 2017/06/13 00:30

    お疲れ様です。
    ご回答頂いた、settings.ymlのプロトコルを編集する方法について確認いたしました。

    編集後にRedmineの再起動→ログインを試みたのですが、事象の解消にはいたらず、リダイレクトはhttpのままでした。

    今他の方法(apache側)でもいろいろと試していますが、現状変わらずという状態です。

    キャンセル

0

試したことの③を、Apache側のhttpd.confに設定するのではなく、

/var/lib/redmine/public/.htaccess ファイルに設定したら有効になりませんか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.32%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る