AZURE Ubuntu

ビデオ会議サーバー Jitsi Meet の Let’s Encrypt SSL証明書更新

AZURE

Let’s Encrypt SSLサーバー証明書 3か月以内に更新

以前投稿した Jitsi Meet サーバーです

Let’s Encrypt から更新必要のメール到着

ブラウザでSSL証明書の詳細確認

1ヵ月足らずで切れてしまう

SSL証明書更新作業

Jitsi Meet インストール後の Let’s Encrypt インストールシェル

インストールシェルの内容を見てみた

root@jitsi:/usr/share/jitsi-meet/scripts# cat install-letsencrypt-cert.sh
このなかに
CRON_FILE="/etc/cron.weekly/letsencrypt-renew"

とある。
そこで この CRON_FILE の内容を cron で実行してみてはと。
ubuntu の cron は

/etc/cron.d に拡張無しのファイルを配置

/etc/cron.d/jitsi_letsencrypt ファイル名は任意

root@jitsi:/etc# cd /etc/cron.d
root@jitsi:/etc/cron.d# ls
mdadm popularity-contest
root@jitsi:/etc/cron.d# cp /etc/crontab jitsi_letsencrypt ← サンプルコピー
root@jitsi:/etc/cron.d# vi jitsi_letsencrypt ← cron動作ファイル作成

root@jitsi:/etc/cron.d# cat /etc/cron.d/jitsi_letsencrypt ← 内容
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user command
00 * * * * root /etc/cron.weekly/letsencrypt-renew ← 試験的に毎時00分に実行してみる

/etc/cron.d にcron用ファイルを確認できた

root@jitsi:/etc/cron.d# ls -l
合計 12
-rw-r--r-- 1 root root 432 8月 31 13:41 jitsi_letsencrypt ← 今回作成
-rw-r--r-- 1 root root 589 1月 15 2020 mdadm
-rw-r--r-- 1 root root 191 5月 23 00:52 popularity-contest

cron再起動

root@jitsi:/etc/cron.d# systemctl restart cron
root@jitsi:/etc/cron.d# systemctl status cron ← cron の稼働状況確認
● cron.service - Regular background program processing daemon
Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2020-08-31 13:42:20 JST; 3s ago
Docs: man:cron(8)
Main PID: 6894 (cron)
Tasks: 1 (limit: 2232)
CGroup: /system.slice/cron.service
mq6894 /usr/sbin/cron -f

8月 31 13:42:20 jitsi systemd[1]: Started Regular background program processing daemon.
8月 31 13:42:20 jitsi cron[6894]: (CRON) INFO (pidfile fd = 3)
8月 31 13:42:20 jitsi cron[6894]: (CRON) INFO (Skipping @reboot jobs -- not system startup)

ログの確認

root@jitsi:/var/log# cat le-renew.log
Upgrading certbot-auto 1.5.0 to 1.7.0... ← certbot-auto も新しくなった様だ
Replacing certbot-auto...
Creating virtual environment...
Installing Python packages...
Installation succeeded.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/jitsi.example.com.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
new certificate deployed without reload, fullchain is
/etc/letsencrypt/live/jitsi.example.com/fullchain.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Congratulations, all renewals succeeded. The following certs have been renewed:
/etc/letsencrypt/live/jitsi.example.com/fullchain.pem (success)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

root@jitsi:/etc/letsencrypt/archive/jitsi.example.com# ls -lt
合計 32
-rw-r--r-- 1 root root 1911 8月 31 14:02 cert2.pem    ← 更新された
-rw-r--r-- 1 root root 1647 8月 31 14:02 chain2.pem      ← 更新された
-rw-r--r-- 1 root root 3558 8月 31 14:02 fullchain2.pem  ← 更新された
-rw------- 1 root root 1708 8月 31 14:02 privkey2.pem    ← 更新された
-rw-r--r-- 1 root root 1911 6月 8 16:57 cert1.pem
-rw-r--r-- 1 root root 1647 6月 8 16:57 chain1.pem
-rw-r--r-- 1 root root 3558 6月 8 16:57 fullchain1.pem
-rw------- 1 root root 1704 6月 8 16:57 privkey1.pem

ブラウザで証明書が更新されたことの確認

最終cron 設定ファイル

/etc/cron.d/jitsi_letsencrypt

root@jitsi:/etc/cron.d# cat /etc/cron.d/jitsi_letsencrypt
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user command
15 5 * * 6 root /etc/cron.weekly/letsencrypt-renew  ← 毎週土曜日5時15分に更新

まとめ

Let’s Encrypt インストールシェル

/usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh

/etc/cron.weekly/letsencrypt-renew

までは作ってくれたのでありがたい。
できれば cron の設定を週一実行のスケジュールまでやってもらえたらさらに嬉しい。

コメント