AWS

AWS Lightsailで作成したWordPressサイトにSSL自動更新を設定する

AWS
この記事は約3分で読めます。

はじめに

AWS Lightsailを使用することで、簡単にWordPressサイトを作成・公開することができます。

ここでは作成したサイトにSSLの自動更新をCrontabで設定する方法をまとめます。

前提

前提として、以下が完了しているものとします。

  • Lightsailを使用してWordPressサイトを作成している
  • 以下の公式チュートリアルに従って、SSLを設定している

チュートリアル: のWordPressインスタンスで Let’s Encrypt の SSL 証明書を使用する Amazon Lightsa…https://lightsail.aws.amazon.com

上記の公式チュートリアルに、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で定期処理