BitNami::Redmine を Windowsにインストール(2)


前回BitNami::Redmine を Windowsにインストール(1)で、インストールまでを説明。今回は、ちょっと苦労したSSL化のメモ。最終的には、Tracがインストールサーバー上で共存させようという発想から、ポートを分けて運用することにしました。

SSL化に必要だった手順

  1. 証明書の準備(今回は、自己証明書)
  2. 証明書をApacheに設定
  3. POSTした時のリダイレクト先を443にする

最後の仕様があったので、443オンリーでの運用を行っています。

証明書関連

自己証明書の作成

OpenSSLは、apacheと同じフォルダにあるので、それを利用して進めます。

証明書発行用の、CSRと秘密鍵の作成

%INSTALL_DIR%apache2bin>openssl req -new > new.cert.csr
Loading ‘screen’ into random state – done
Generating a 1024 bit RSA private key
…………………++++++
..++++++
writing new private key to ‘privkey.pem’
Enter PEM pass phrase:
Verifying – Enter PEM pass phrase: ※パスフレーズを何かしら入力※
・・・
その後、国名や組織名などを聞かれるので、適当に入力。

CSR:new.cert.csr、秘密鍵:privkey.pem が作成される。

Apache自動起動用にパスフレーズなしの秘密鍵を用意

%INSTALL_DIR%apache2bin>openssl rsa -in privkey.pem -out new.cert.key
Enter pass phrase for privkey.pem: ※さっきのパスフレーズを入力※
writing RSA private key

new.cert.key が作成
※パスフレーズを別ファイルに書き込んでおく設定も可能なもよう※

自己証明書の作成

%INSTALL_DIR%apache2bin>openssl x509 -in new.cert.csr -out new.cert.cert -req -signkey new.cert.key -days 365
Loading ‘screen’ into random state – done
Signature ok
subject=/C=JP/ST=Fukui/L=・・・ ※CSR作成時に入力した値が表示
Getting Private key

自己SSL証明書:new.cert.cert が生成

自己SSL証明書をApacheに設定

作成した証明書と秘密鍵を、ApacheのConfフォルダにコピー

%INSTALL_DIR%apache2bin>copy new.cert.cert ..confserver.crt
1 個のファイルをコピーしました。
%INSTALL_DIR%apache2bin>copy new.cert.key ..confserver.key
1 個のファイルをコピーしました。

httpd.confの設定で、SSLをONにする。

%INSTALL_DIR%apache2confhttpd.conf
—–
#LoadModule ssl_module modules/mod_ssl.so
  ↓
LoadModule ssl_module modules/mod_ssl.so
—–
#Include conf/extra/httpd-ssl.conf
  ↓
Include conf/extra/httpd-ssl.conf

server.crt, server.keyの設定を確認

%INSTALL_DIR%apache2confextrahttpd-ssl.conf
—–
SSLCertificateFile “%INSTALL_DIR%/apache2/conf/server.crt”
SSLCertificateKeyFile “%INSTALL_DIR%/apache2/conf/server.key”

動作確認

Apacheの再起動を行って、動作確認を行う。Redmineの画面が表示されればOK。

C:>netstat -anbop tcp
・・・
TCP 0.0.0.0:443 0.0.0.0:0 LISTENING 672
[httpd.exe]

ブラウザで、https://localhost/redmine/ にアクセス
 ⇒ Redmineが表示される

POSTしたときのリダイレクト先変更

前述のところまでで、443で待ち受けはするようになったのですが、Redmineの中をリンクではなくPOSTで遷移したときに、なぜか毎回404が出るという症状に悩まされました。404になるのだけれども、POSTした内容はちゃんと反映されている。

Railsの仕組みとしてPOSTのリダイレクト先のプロトコルも変更しておかねばならない事がわかり対応。
これをやらないと、リダイレクト時にhttpsからhttpへ飛ばされてしまいます。

RequestHeader set X_FORWARDED_PROTO ‘https’ を設定

ファイルの場所: %INSTALL_DIR%appsredmineconfredmine.conf

<proxy balancer://redminecluster>
RequestHeader set X_FORWARDED_PROTO ‘https’ # ← この行を追加
BalancerMember http://127.0.0.1:3001/redmine
BalancerMember http://127.0.0.1:3002/redmine
</proxy>

これで無事に443運用ができるようになりました。
ただ、この仕様があるなれば、80と443の両方でサービス提供できないと考え、443をメインで運用することにしました。

あと、ちょっとしたおまけ作業

ルートコンテンツを変更

%INSTALL_DIR%apache2htdocs
index.html

あとからダブルクリックした時に混乱しないように

BitNami::Redmineのショートカット変更

http://win-server:80/

  ↓

https://win-server/redmine/

外部公開時には、Firewallの設定などを忘れずに。

参考サイト

いずれのサイトもすごく助かりました。ありがとうございます。

, , ,

Comments are closed.