Redmineのバージョンは2.5です。
Ruby, MySQL, Nginxのインストール
http://kzy52.com/entry/2013/05/03/022925
Rubyのバージョンは2.0にすること
ImageMagickをインストールする
$ sudo yum -y install ImageMagick ImageMagick-devel
ソースコードを取得する
- ディレクトリの所有者は適宜変更してください。
$ sudo mkdir -p /var/www/virtualhost/ $ cd /var/www/virtualhost/ $ sudo svn checkout http://svn.redmine.org/redmine/trunk/ redmine $ sudo chown -R redmine:redmine redmine $ cd redmine $ cp config/database.yml.example config/database.yml
gem をインストールする
$ rbenv local [インストールしたRubyのバージョン] $ gem install bundler $ rbenv rehash $ bundle install --path vendor/bundle
セッション暗号化用鍵の生成
$ bundle exec rake generate_secret_token
データベースの作成
- パスワードは適宜変更してください。
$ mysql -u root -p mysql> CREATE DATABASE `redmine` DEFAULT CHARACTER SET `utf8`; mysql> create user redmine@localhost identified by 'パスワード'; mysql> grant all on redmine.* to redmine@localhost; mysql> exit
使用するデータベースの設定をする
- パスワードは適宜変更してください。
# config/database.yml production: adapter: mysql2 database: redmine host: localhost username: redmine password: "パスワード" encoding: utf8
データベースの初期化
$ bundle exec rake db:migrate RAILS_ENV=production $ bundle exec rake redmine:load_default_data RAILS_ENV=production Select language: ar, az, bg, bs, ca, cs, da, de, el, en, en-GB, es, et, eu, fa, fi, fr, gl, he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sq, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en] ja
「ja」と入力してEnter
メール送信の設定
$ cp config/configuration.yml.example config/configuration.yml
# config/configuration.yml default: email_delivery: delivery_method: :smtp smtp_settings: address: localhost port: 25 domain: redmine.example.com # Redmineを実行するサーバのFQDNに変更すること
unicorn をインストールする
# Gemfile.local gem "unicorn"
$ bundle install
# config/unicorn.rb worker_processes 2 app_path = "/var/www/virtualhost/redmine" listen File.expand_path('tmp/unicorn.sock', app_path) pid File.expand_path('tmp/unicorn.pid', app_path) stderr_path File.expand_path('log/unicorn.stderr.log', app_path) stdout_path File.expand_path('log/unicorn.stdout.log', app_path) preload_app true timeout 30 if GC.respond_to?(:copy_on_write_friendly=) GC.copy_on_write_friendly = true end before_fork do |server, worker| defined?(ActiveRecord::Base) and ActiveRecord::Base.connection.disconnect! old_pid = "#{server.config[:pid]}.oldbin" if old_pid != server.pid begin sig = (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOU Process.kill(sig, File.read(old_pid).to_i) rescue Errno::ENOENT, Errno::ESRCH end end end after_fork do |server, worker| defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection end
unicorn を起動する
$ bundle exec unicorn -c config/unicorn.rb -E production -D
Basic認証を設定する
$ sudo htpasswd -cb /var/www/virtualhost/redmine/.htpasswd redmine [パスワード]
証明書を作成する
$ sudo mkdir -p cd /usr/local/nginx/conf $ cd /usr/local/nginx/conf
秘密鍵の作成
$ sudo openssl genrsa -out ca.key 2048
証明書署名要求の作成
$ sudo openssl req -new -key ca.key -out ca.csr
証明書作成
$ sudo openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt
ポートを開放する
# /etc/sysconfig/iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
$ sudo /etc/rc.d/init.d/iptables restart
Nginx の設定
# /etc/nginx/conf.d/redmine.conf upstream redmine { server unix:/var/www/virtualhost/redmine/tmp/unicorn.sock; } server { listen 80; server_name redmine.example.com; rewrite ^/(.*) https://redmine.example.com/$1 permanent; } server { listen 443 ssl; server_name redmine.example.com; root /var/www/virtualhost/redmine/public; proxy_connect_timeout 60; proxy_read_timeout 60; proxy_send_timeout 60; # Basic Authentication auth_basic "members only"; auth_basic_user_file '/var/www/virtualhost/redmine/.htpasswd'; # SSL ssl on; ssl_certificate /usr/local/nginx/conf/ca.crt; ssl_certificate_key /usr/local/nginx/conf/ca.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!ADH:!MD5; location / { if (-f $request_filename) { break; } proxy_pass http://redmine; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; } }
Nginx を再起動する
$ sudo /etc/init.d/nginx restart
ログインする
ログイン: admin
パスワード: admin
パスワードを変更する
[個人設定] -> [パスワード変更]
その他の設定をする
[管理] -> [設定] -> [表示]
- 既定の言語: Japanese (日本語)
[管理] -> [設定] -> [表示]
- 認証が必要: チェックする
- ユーザーによるアカウント登録: 無効
- ユーザーによるアカウント削除を許可: チェックを外す
参考
http://wiki.centos.org/HowTos/Https
変更履歴
SSL 3.0の脆弱性「Poodle」の対応で ssl_protocols の設定を変更しました。