Lightsail で運用している WordPress 用の Let’s Encrypt 証明書を更新する

 以前、Lightsail で運用している WordPress の SSL 対応を Let’s Encrypt で行ったのですが、証明書の有効期限が近くなったため更新処理を行いました。その際の作業メモです。

作業はWebターミナルで行う

 今回は簡単に進めるため、LightsailのダッシュボードからWebターミナルを起動します。オレンジ色の「>_」と表示されているボタンをクリックすればWebのターミナルが起動します。

 Webターミナルが起動しました。

 それでは証明書を更新していきましょう。Let’s Encrypt のインストールディレクトリに移動した後に、こちらのコマンドを実行すれば証明書の更新が確認できます。

$ sudo certbot-auto renew

 証明書が更新され、次回の有効期限は 2020/07/30 であることがわかります。(画像は更新後に再度実行したため、実際の更新ログが表示されていません)また、「./certbot-auto has insecure permissions!」という警告メッセージが表示されていますので続いてこれを解消していきます。

certbot-auto has insecure permissions を解消する

 「./certbot-auto has insecure permissions!」については、こちらの記事に解消方法が載っています
https://community.letsencrypt.org/t/certbot-auto-deployment-best-practices/91979/

  1. 一般ユーザーに書き込み権限がないディレクトリに certbot-auto を配置すること(例えば /usr/local/bin など)
  2. 所有者を root ユーザーにすること
  3. パーミッションを 0755 (所有者のみが書き込み可能)に設定すること

まとめると、下記の一連のコマンドで解消できそうです。

$ sudo chown root:root certbot-auto
$ sudo chmod 755 certbot-auto
$ mv certbot-auto /usr/local/bin

上記を実施した結果、エラーが解消されました。

dry-run について

 なお、certbot-auto renew には –-dry-run のオプションが設定可能です。サーバーの設定を変更した後、事前にcertbot-auto renewで正しく証明書が取得、更新されるか確認したい場合は –-dry-run のオプション付きで実行しましょう。

 実際に–dry-runオプション付きで実行したところ、「Congratulations, all renewals succeeded. The following certs have been renewed:」と出力されているので、証明書の更新処理には成功することがわかります。

 さらに「DRY RUN: simulating」や「(The test certificates above have not been saved.)」という出力から、実際には証明書更新が行われないことがわかります。

 ここまでが、Lightsail上でLet’s Encryptの証明書を更新した際の作業記録でした。もちろん、Lightsail や WordPress に限定した話ではないので、他のVPSなどでも同様の手順で更新できると思います。次回は機会があれば、cron(クロン)による証明書の自動更新設定を解説します。