はじめに
AWS Lightsailを使用することで、簡単にWordPressサイトを作成・公開することができます。
ここでは作成したサイトにSSLの自動更新をCrontabで設定する方法をまとめます。
前提
前提として、以下が完了しているものとします。
- Lightsailを使用してWordPressサイトを作成している
- 以下の公式チュートリアルに従って、SSLを設定している
上記の公式チュートリアルに、Certbotを使用したSSLの設定方法がまとまっています。
手順通りに行うことで、簡単に設定が完了します。
しかしながら、この手順のままでは手動でSSLの更新を行う必要があります。
そのため以下で、Crontabを使用し更新処理を自動化します。
Certbotで更新処理
Certbotを使用する場合、更新は以下のコマンドで簡単に行うことができます。
LightsailのコンソールからSSH接続して、以下のコマンドを実行します。
- 有効期限が30日未満の証明書を全て更新することができます。
- 30日以上の猶予がある場合は、その旨のエラーメッセージが出力され、終了します。
certbot renew
# もしくは /usr/bin/certbot renew
Crontabを用いた定期実行
Linuxを使ったシステムでは標準で使用できるcrontabは、定期処理を実行したい時にはとても便利な機能です。
以下のコマンドを実行し、定期実行したいタスクを登録します。
sudo crontab -e
最初sudoなしでタスクを登録したところ、権限がなくて処理を実行できませんでした。
sudoで実行することで、タスクもsudo権限で実行することができます。
タスク
00 1 * * * /usr/bin/certbot renew --post-hook "sudo /opt/bitnami/ctlscript.sh restart apache" > /var/log/cron_job.log 2>&1
- 毎月1日に、
/usr/bin/certbot renew
でSSL更新の処理をおこないます。 - 更新が成功した場合、
--post-hook
以下の処理が走り、Apacheの再起動をおこないます。 - タスクの実行ログを
/var/log/cron_job.log
に残すようにしています。
まとめ
- Certbotで簡単更新
- Crontabで定期処理