以前、Lightsail で運用している WordPress の SSL 対応を Let’s Encrypt で行ったのですが、証明書の有効期限が近くなったため更新処理を行いました。その際の作業メモです。
作業はWebターミナルで行う
今回は簡単に進めるため、LightsailのダッシュボードからWebターミナルを起動します。オレンジ色の「>_」と表示されているボタンをクリックすればWebのターミナルが起動します。
![](https://blog.fits-inc.jp/wp-content/uploads/2020/05/Lightsailのダッシュボード-1024x403.png)
Webターミナルが起動しました。
![](https://blog.fits-inc.jp/wp-content/uploads/2020/05/GUIターミナル起動後-1024x480.png)
それでは証明書を更新していきましょう。Let’s Encrypt のインストールディレクトリに移動した後に、こちらのコマンドを実行すれば証明書の更新が確認できます。
$ sudo certbot-auto renew
![](https://blog.fits-inc.jp/wp-content/uploads/2020/05/certbot-auto_renewによる証明書の更新-1024x407.png)
証明書が更新され、次回の有効期限は 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/
- 一般ユーザーに書き込み権限がないディレクトリに certbot-auto を配置すること(例えば /usr/local/bin など)
- 所有者を root ユーザーにすること
- パーミッションを 0755 (所有者のみが書き込み可能)に設定すること
まとめると、下記の一連のコマンドで解消できそうです。
$ sudo chown root:root certbot-auto
$ sudo chmod 755 certbot-auto
$ mv certbot-auto /usr/local/bin
上記を実施した結果、エラーが解消されました。
![](https://blog.fits-inc.jp/wp-content/uploads/2020/05/エラーが解消された-1024x385.png)
dry-run について
なお、certbot-auto renew には –-dry-run のオプションが設定可能です。サーバーの設定を変更した後、事前にcertbot-auto renewで正しく証明書が取得、更新されるか確認したい場合は –-dry-run のオプション付きで実行しましょう。
![](https://blog.fits-inc.jp/wp-content/uploads/2020/05/dry-run-1024x598.png)
実際に–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(クロン)による証明書の自動更新設定を解説します。