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対策
- FREAK (Factoring attack on RSA-EXPORT Keys) 対策で Web サーバに行った SSLCipherSuite の設定例
- httpd における POODLE SSLv3.0 脆弱性問題の解決方法 (CVE-2014-3566)
ここを参考に
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
を追加する。