Let's encrypt の証明書を自動更新する

Posted on
vps ubuntu let's encrypt ssl cron

しばらく前に Apache をやめて Nginx にしたのですが、Let’s encrypt の自動更新設定を変えるのを忘れていたため、改めて設定しました。 環境は Ubuntu 16.04 です。

実行するコマンドを確認する

Let’s encrypt に関しては古い情報も多いので、公式サイトを見ます。

基本のコマンドは

certbot renew --pre-hook "service nginx stop" --post-hook "service nginx start"

ですが、下のほうを見ると crontab に追加するときは -q を付けろと書いてあるので

certbot renew -q --pre-hook "service nginx stop" --post-hook "service nginx start"

でいいはずですね。

cron に追加

sudo でないと実行できないので、そっちの crontab に追加します。

sudo crontab -e

でできるんですが、は使わないほうがいいとよく言われているので、違う方法にします。

まず適当なフォルダに移動して

sudo crontab -l > cron.conf
cp cron.conf cron-20180729.conf

これで現在の crontab の設定を2つのファイルに保存しました。

vi cron.conf

で、コマンドを記入して保存しましょう。

0 18 1 * * certbot renew -q --pre-hook "service nginx stop" --post-hook "service nginx start"

にしました。実行間隔はお好みで。

そしたら

sudo crontab cron.conf

で適用します。

適用されたことと、適用前との差分を確認しましょう。

sudo crontab -l | diff cron-20180729.conf -

正しく適用されていればOK。