cronでLetsEncryptの自動更新を行う方法

目次

無題

どうも、クーです!

皆さんはLetsEncryptの証明書を利用されたことはあるでしょうか?

こちら無料のSSL証明書になるのですが、基本的に有料の証明書より期限が短く
3カ月で期限が切れてしまうんですよね…

いちいち更新のコマンドを叩くのも面倒くさいし、
更新を忘れて有効期限が切れてしまったら目も当てられません…

そこで今回はLets Encryptの証明書更新をcronで自動化する手順を
まとめていきたいと思います!

LetsEncryptの更新手順

LetsEncryptの更新手順は基本的に下記のコマンドをコマンドライン上で入力するだけで
更新が可能です。

certbot renew

--dry-runオプションを付けることで実際の証明書を更新せずにコマンドのテストが行えますので
実際に入力し、正常に証明書更新のコマンドが動くことを確かめてみてください!

certbot renew --dry-run

cronとは

では証明書の更新手順もわかりましたので、
この手順を自動化するcronについてまとめていきます。

cronとは設定したスクリプトを指定のタイミングで自動実行するプログラムです。

下記のコマンドでcronの編集が可能です。

crontab -e


注意点としては-rオプションで内容がすべて消えてしまうため、cronの内容のバックアップをとったり、下記コマンドでファイル指定で設定内容を読み込みできるので、別ファイルに設定内容を
記載するなどしていただくと安全かと思います。

crontab {設定を記載したファイル名}
※現在設定が上書きされる点は注意

crontabに記載する内容は下記のような形式となります。

分 時 日 月 曜日 実行コマンドor実行ファイルパス

ここで各ステータスの設定値は下記のようになります。また設定値に*(アスタリスク)を
設定することで該当項目がどの値でもcronがスクリプトを実行するようになります。

分 :0~59
時 :0~23
日 :1~31
月 :1~12 または jan~dec
曜日:1~7 または sun~sat(1~7とsun~satがそれぞれ対応)

実際のスクリプト

それでは実際のスクリプトを設定してみましょう。

今回は毎月1日の0時ちょうどで更新をかけるようにしてみます!
この場合のスクリプトは以下になります。

0 0 1 * * certbot renew

上記をcronに入力することで、LetsEncryptの更新処理が自動化できます!

最後に

手動だといろいろと大変なLetsEncryptの更新処理も、cronを利用することでこんなに簡単に
できちゃいます!

ぜひこれを機に皆さんも更新処理を自動化してしまいましょう!!

以上、クーでした!