CentOS7:Let’s Encryptの証明書を手動で更新する

Let’s Encryptの証明書の有効期限は90日と短いため、通常はcronやsystemd.timersを使って証明書の自動更新を設定します。わたしもsystemd.timersを使って自動更新を設定しておいたのですが、ある日、次のようなメールが「Let's Encrypt Expiry Bot 」から届きました。

Your certificate (or certificates) for the names listed below will expire in
20 days (on 12 Jun 18 18:36 +0000). Please make sure to renew
your certificate before then, or visitors to your website will encounter errors.

これは、証明書の期限がもうすぐ切れますよ、という通知メールです。自動更新を設定しているのになんでだろうと調べてみたところ、証明書発行時以降にWebサーバーのドキュメントルートを変更していたことが原因でした。

というわけで「/etc/letsencrypt/renewal」にある設定ファイルの記述されているドキュメントルートを修正後、証明書を手動で更新しました。

ここでは、CentOS7でLet's Encryptの証明書を手動で更新する方法を紹介します。

更新作業

以下のコマンドを実行すると、期限まで30日未満の証明書が更新されます。

certbot renew

更新処理が始まると以下のようなメッセージが出力されます。

Saving debug log to /var/log/letsencrypt/letsencrypt.log

-------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/4thsight.xyz.conf
-------------------------------------------------------------------------------
Cert is due for renewal, auto-renewing...
Plugins selected: Authenticator webroot, Installer None
Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for 4thsight.xyz
http-01 challenge for www.4thsight.xyz
Waiting for verification...
Cleaning up challenges

-------------------------------------------------------------------------------
new certificate deployed without reload, fullchain is
/etc/letsencrypt/live/4thsight.xyz/fullchain.pem
-------------------------------------------------------------------------------

-------------------------------------------------------------------------------
Congratulations, all renewals succeeded. The following certs have been renewed:
/etc/letsencrypt/live/4thsight.xyz/fullchain.pem (success)
-------------------------------------------------------------------------------

最終行あたりに「Congratulations,」と表示されていれば、更新成功です。更新に要する時間は証明書の数にもよると思いますが、1つだけだと15秒ぐらいで終わりました。

証明書の更新が完了したら、Webサーバーを再起動します。

systemctl restart nginx

最後に、Webブラウザでサイトを開き、証明書が更新されていることを確認します。

まとめ

Let’s Encryptは無料で利用できる上に、更新も楽で大変助かります。

スポンサーリンク