Let’s Encrypt の証明書を自動更新する

このブログのhttps化のために導入したLet’s Encrypt の証明書ですが、90日ごとに期限が切れてしまうそうです。
更新手順が用意されていますが、毎回行うのは面倒なのでそれを自動化します。

手順は、証明書を導入した時と同じbitnamiのドキュメントの下の方にあります。
Generate And Install A Let’s Encrypt SSL Certificate For A Bitnami Application
これの Step 5: Renew The Let’s Encrypt Certificate がそれです。

rootユーザーにsuし、
/etc/lego/renew-certificate.sh
というファイルを作ります。中身はこれです。
ドキュメント中の”EMAIL-ADDRESS” と “DOMAIN” は自分のものに置き換える必要があります。


#!/bin/bash

sudo /opt/bitnami/ctlscript.sh stop apache
sudo /usr/local/bin/lego --email=メールアドレス --domains=analytics-note.xyz --path="/etc/lego" renew
sudo /opt/bitnami/ctlscript.sh start apache

スクリプトファイルを作成したら実行できるように権限を修正します。(ユーザーはrootで実行)


chmod +x /etc/lego/renew-certificate.sh

そして、このスクリプトを cronに設定します。
下記コマンドを実行して編集画面を起動。


sudo crontab -e

最終行に先ほど作ったスクリプトを登録して保存したら完了です。


0 0 1 * * /etc/lego/renew-certificate.sh 2> /dev/null