🕌

Redmine 5.0 を Ubuntu 22.04 LTS にインストールして、TLS 対応させる

2023/10/05に公開

TL;DR

  • Ubuntu Server 22.04 に Redmine 5.0 をインストールする
  • TLS にも対応させる
  • なんかとても古臭い方法になったので、徐々に改善していきたい

Redmine 5.0 のインストール

とりあえず Redmine 5.0 をUbuntu 22.04 LTSにインストールする手順 に沿って進めていくだけ。
make とかしててとりあえずマジかよという感じ、時間がかかります。
途中の選択肢は パターン1: webサーバをRedmine専用として使用 を選んでいます。

TLS 対応させる

証明書は Acmebot で Azure Key Vault に保管された証明書を apache2 で利用する を参考に作成しておきます。
/etc/apache2/ssl/certificate.crtkey.pem を配置しておきます。

Mozilla SSL Configuration Generator を利用して sapmle config を作ります。

こちらは自動生成させたそのものなのでしまっておきます
# generated 2023-10-05, Mozilla Guideline v5.7, Apache 2.4.52, OpenSSL 3.0.2, intermediate configuration
# https://ssl-config.mozilla.org/#server=apache&version=2.4.52&config=intermediate&openssl=3.0.2&guideline=5.7

# this configuration requires mod_ssl, mod_socache_shmcb, mod_rewrite, and mod_headers
<VirtualHost *:80>
    RewriteEngine On
    RewriteCond %{REQUEST_URI} !^/\.well\-known/acme\-challenge/
    RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
</VirtualHost>

<VirtualHost *:443>
    SSLEngine on

    # curl https://ssl-config.mozilla.org/ffdhe2048.txt >> /path/to/signed_cert_and_intermediate_certs_and_dhparams
    SSLCertificateFile      /path/to/signed_cert_and_intermediate_certs_and_dhparams
    SSLCertificateKeyFile   /path/to/private_key

    # enable HTTP/2, if available
    Protocols h2 http/1.1

    # HTTP Strict Transport Security (mod_headers is required) (63072000 seconds)
    Header always set Strict-Transport-Security "max-age=63072000"
</VirtualHost>

# intermediate configuration
SSLProtocol             all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite          ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305
SSLHonorCipherOrder     off
SSLSessionTickets       off

SSLUseStapling On
SSLStaplingCache "shmcb:logs/ssl_stapling(32768)"

で、こちらをもとにこんな感じのファイルを /etc/apache2/sites-available/redmine.conf に作成します。
先ほどのとの違いは、SSLCertificateFileSSLCertificateKeyFile がいい感じになっているのと、DocumentRoot が追加されているところです。

# generated 2023-10-05, Mozilla Guideline v5.7, Apache 2.4.52, OpenSSL 3.0.2, intermediate configuration
# https://ssl-config.mozilla.org/#server=apache&version=2.4.52&config=intermediate&openssl=3.0.2&guideline=5.7

# this configuration requires mod_ssl, mod_socache_shmcb, mod_rewrite, and mod_headers
<VirtualHost *:80>
    RewriteEngine On
    RewriteCond %{REQUEST_URI} !^/\.well\-known/acme\-challenge/
    RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
</VirtualHost>

<VirtualHost *:443>
    DocumentRoot /var/lib/redmine/public
    SSLEngine on

    # curl https://ssl-config.mozilla.org/ffdhe2048.txt >> /path/to/signed_cert_and_intermediate_certs_and_dhparams
    SSLCertificateFile      /etc/apache2/ssl/certificate.crt
    SSLCertificateKeyFile   /etc/apache2/ssl/key.pem

    # enable HTTP/2, if available
    Protocols h2 http/1.1

    # HTTP Strict Transport Security (mod_headers is required) (63072000 seconds)
    Header always set Strict-Transport-Security "max-age=63072000"
</VirtualHost>

# intermediate configuration
SSLProtocol             all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite          ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305
SSLHonorCipherOrder     off
SSLSessionTickets       off

SSLUseStapling On
SSLStaplingCache "shmcb:logs/ssl_stapling(32768)"

で、そうすると既定の sites と設定がかぶるので、000-default を無効化します。

sudo a2dissite 000-default

で、redmine.conf を有効化します。

sudo a2ensite redmine

/etc/apache2/sites-enabled/ のフォルダの中には、redmine.conf へのシンボリックリンクのみがある状態になるはずです。

$ ls -l /etc/apache2/sites-enabled/
total 0
lrwxrwxrwx 1 root root 31 Oct  5 09:10 redmine.conf -> ../sites-available/redmine.conf

sample config の冒頭に必要となる module が書いてあるのですが、規定では module が足りずに怒られるので、追加しておきます。

a2enmod ssl socache_shmcb rewrite headers

設定反映のため、apache2 を再起動します。

sudo systemctl restart apache2

Redmine にアクセスする

すくしょが無くても問題ないと思いますが、https 付きで Web サイトにアクセスして、Redmine が表示されれば成功です。

初期設定とか

Redmineを使い始めるための初期設定 を参考に初期設定を済ませる。
特に、デフォルトデータのロード をしておかないとチケットの起票すらできないプロジェクトが作成される。。

参考

  • Redmine 5.0 をUbuntu 22.04 LTSにインストールする手順

https://blog.redmine.jp/articles/5_0/install/ubuntu/

  • Mozilla SSL Configuration Generator

https://ssl-config.mozilla.org/

  • UbuntuのApache設定ファイル、どうやるんだっけ?

https://qiita.com/diconran/items/1eca0e0792f4ce1930c5

  • Redmineを使い始めるための初期設定

https://redmine.jp/tech_note/first-step/admin/

Discussion