Readmine6をHTTPS化する

この記事では、自力でLinuxサーバに構築したRedmine6をHTTPS化する方法について紹介しています。

Redmine6の構築手順については、以下を参考にしてください。

なお、HTTPS化のためにSSLサーバ証明書が手元に準備できている前提で解説を進めていきます。

Readmine6をHTTPS化する

今回構築したRedmine6を構成するRailsを動かすためのフロントエンドとしてPumaを利用しています。

HTTPS化設定

Pumaに対するHTTPS化の設定は以下のとおりです。

# vi /opt/redmine/config/puma.rb
directory '/opt/redmine'
environment 'production'

#bind 'tcp://0.0.0.0:3000'

ssl_bind '0.0.0.0','443',{
  key:'/opt/redmine/ssl/server.key',
  cert:'/opt/redmine/ssl/server.crt',
  verify_mode: 'none'
}

workers 2
threads 1,6

stdout_redirect 'log/puma.stdout.log', 'log/puma.stderr.log', true
pidfile 'tmp/puma.pid'
state_path 'tmp/puma.state'
activate_control_app

上記の設定値にすると、HTTPでRedmine6にアクセスできなくなるので注意してください。

サーバ証明書と秘密鍵は、上記の例では/opt/redmine配下にsslというディレクトリを作成して配置しています。ご自身のサーバ証明書と秘密鍵の配置場所を設定してください。

「verify_mode」は証明書の検証方法です。イントラネット内の運用を想定している場合は証明書の検証なし(none)でも問題ないでしょう。外部公開する場合は、証明書検証あり(peer)を設定することを推奨しますが、その場合は認証局の証明書(CA証明書)が必要となるため注意が必要です。

サーバ側のファイアーウォールで443ポート(HTTPS)が解放されていることも忘れずに確認してください。

設定値に間違いがないか、構文チェックします。

# ruby -c /opt/redmine/config/puma.rb
Syntax OK

フロントエンドの再起動

設定が終わったら、Pumaを再起動します。Pumaはsystemdで起動させていますので、以下のように再起動することができます。

# systemctl restart puma
# systemctl status puma

● puma.service - Puma HTTP Server for Redmine
   Loaded: loaded (/etc/systemd/system/puma.service; enabled; vendor preset: di>
   Active: active (running) since Sat 2025-03-01 07:50:56 UTC; 7h ago
 Main PID: 29 (bundle)
    Tasks: 25 (limit: 50349)
   Memory: 356.1M
   CGroup: /machine.slice/machine-libpod_pod_bdad3dfd3638045d36c6b5188c4a45fd11>
           tq 29 puma 6.6.0 (ssl://0.0.0.0:443?cert=%2Fopt%2Fredmine%2Fssl%2Fre>
           tq295 puma: cluster worker 0: 29 [redmine]
           mq299 puma: cluster worker 1: 29 [redmine]

Mar 01 07:51:02 redmin.reafnex.local bundle[29]: [29] * Puma version: 6.6.0 ("R>
Mar 01 07:51:02 redmin.reafnex.local bundle[29]: [29] * Ruby version: ruby 3.3.>
Mar 01 07:51:02 redmin.reafnex.local bundle[29]: [29] *  Min threads: 1
Mar 01 07:51:02 redmin.reafnex.local bundle[29]: [29] *  Max threads: 6
Mar 01 07:51:02 redmin.reafnex.local bundle[29]: [29] *  Environment: production
Mar 01 07:51:02 redmin.reafnex.local bundle[29]: [29] *   Master PID: 29
Mar 01 07:51:02 redmin.reafnex.local bundle[29]: [29] *      Workers: 2
Mar 01 07:51:02 redmin.reafnex.local bundle[29]: [29] *     Restarts: (✔) hot (>
Mar 01 07:51:02 redmin.reafnex.local bundle[29]: [29] * Listening on ssl://0.0.>
Mar 01 07:51:02 redmin.reafnex.local bundle[29]: [29] Use Ctrl-C to stop

Pumaが正常起動したら、HTTPS化の作業は完了です。

Redmine6にHTTPSでアクセスする

Microfoft Edgeで開いてみると、以下のようになっているはずです。

アドレスバーに鍵マークが表示されていれば、接続がセキュリティで保護された通信になっています。

まとめ

いかがでしたでしょうか。

今回は、自力でLinuxサーバに構築したRedmine6をHTTPS化する方法について紹介しました。SSLサーバ証明書が手元にある場合は、簡単にHTTPS化することができます。

イントラネット内で利用する場合は、いわゆるオレオレ証明書でも問題ないでしょう。

企業利用する場合は、信頼された証明書機関から発行されたSSLサーバ証明書を利用した方がよいでしょう。

証明書の価格は年額べーすで数千円から十数万円と幅がありますが、企業の信頼性を高める意味では、多少高くても企業認証(OV)や拡張認証(EV)を利用すべきです。

スモールビジネスや個人利用であれば、年額ベースで数千円程度から購入可能なドメイン認証(DV)やLet’s Encryptのような無料のドメイン認証(DV)がおすすめです。

参考になれば幸いです。

システムのお悩みについてご相談ください

本サイトの掲載内容に関するお問い合わせは、こちらから承ります。
SOHOのシステム運用管理に関するお悩みごとについて、なんでもお気兼ねなくご相談ください。
現役システムエンジニアのスタッフが、ボランティアでご相談にご対応させていただきます。