RedmineにSSLを設定した時のメモ

忘れそうだったのでメモ

環境とか

  • ArchLinux
  • apache2.4

証明書を作成する

証明書の作成

オレオレ証明書をopensslで作る(詳細版)Add Star
こことか、
無料のSSL証明書StartSSLを活用する
こことかで証明書を作成する。

Apache側での設定

Moduleのアンコメント
LoadModule ssl_module modules/mod_ssl.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

をアンコメント

httpd.conf
Include conf/extra/httpd-ssl.conf

をアンコメント

extra/httpd-ssl.conf
DocumentRoot "/srv/http"                                                        
ServerName www.example.com:443                                                  
ServerAdmin you@example.com                                                     

DocumentRoot "/srv/redmine-3.0.3/public"
ServerName redmine.my.domain:443
ServerAdmin postmaster@my.domain

こんな感じで変更

証明書ファイルの指定

上で取得した証明書を extra/httpd-ssl.conf で指定する

# vim /etc/httpd/conf/extra/httpd-ssl.conf
SSLCertificateFile "/etc/httpd/conf/ssl/server.crt"
SSLCertificateKeyFile "/etc/httpd/conf/ssl/server.key"
FREAKとかPOODLE対策

ここを参考に

SSLCipherSuite     ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
SSLHonorCipherOrder on

SSLProtocol All -SSLv2 -SSLv3

このパラメータを設定しました。

Redmine側の設定

管理 > 設定 > 全般 > プロトコル でHTTPSを選択。

強制的にhttpsじゃないと通信できなくする

この設定をすると強制的にhttpsを使用させることができる
もし、ページによって通常のHTTP通信をさせたい場合は、公式Guideに載っているのでそっちを参照
/srv/redmine-3.0.3/config/environments/production.rb
を編集し、ファイル内のendよりも前の行に、

config.force_ssl = true

を追加する。

参考