Redmine
letsencrypt

AzureマーケットプレースのRedmineにLet’s Encryptの証明書を設定する

前提

  • bitnamiのVMイメージを使ってRedmineを構築していること

  参考:Azure上にRedmineを立てる - Qiita

Let's Encryptの証明書を取得

bash
#install
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
./certbot-auto #注意:関連するyumやaptのパッケージが実行時にアップデートされる

#証明書の取得
./certbot-auto certonly --webroot -w /var/www/html -d <your domain ex. www.example.com>
# E-Mailアドレスの入力
# 80ポートのオープンが必要

./certbot-auto certonly --webroot -w /opt/bitnami/apps/redmine/htdocs/public -d <your domain ex. www.example.com>

#取得した証明書の確認 (liveは最新の証明書へのシンボリックリンク)
sudo ls /etc/letsencrypt/archive/
sudo ls /etc/letsencrypt/live/

参考: Let's encrypt運用のベストプラクティス - Qiita

参考:Let's Encrypt の使い方 - Let's Encrypt 総合ポータル

Apacheに証明書を設定する

bash
sudo vi /opt/bitnami/apache2/conf/bitnami/bitnami.conf
bitnami.conf
SSLCertificateFile “/etc/letsencrypt/live/<your domain nane>/fullchain.pem”
SSLCertificateKeyFile “/etc/letsencrypt/live/<your domain name>/privkey.pem”
bash
sudo /opt/bitnami/ctlscript.sh restart apache

  

httpアクセスをhttpsへリダイレクトする

bash
sudo vi /opt/bitnami/apps/redmine/conf/httpd-prefix.conf 
httpd-prefix.conf
#先頭に追記
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]
bash
sudo /opt/bitnami/ctlscript.sh restart apache

証明書を更新する

Let’s Encrypt の証明書は3ヶ月で切れるので更新する

bash
#Redmine関連のサービスを全て止める
sudo /opt/bitnami/ctlscript.sh stop

80ポートへインターネットからアクセスできるようにNSGやファイアウォールをオープンする

bash
./certbot-auto renew --standalone
./certbot-auto renew --standalone --force-renewal

再度NSGやファイアウォールを閉じる

bash
#Redmine関連のサービスを全て再開
sudo /opt/bitnami/ctlscript.sh start