最初にこのサイトの証明書をLet’s Encryptで発行してから2か月半ほど経ちました。

Let’s Encryptの証明書の有効期限は90日なので、更新作業を行いました。なお、ここに書いてあることは公式のユーザーガイドに書いてあります。

期限間近の通知メール


Let’s Encryptは期限間近になると「もうすぐ期限切れるよ~」というメールが来ます。具体的には「Let’s Encrypt Expiry Bot」から19日前に「Let’s Encrypt certificate expiration notice」というタイトルで下記のようなメールが来ました。

1
Hello,

Your certificate (or certificates) for the names listed below will expire in
19 days (on 31 Mar 17 10:44 +0000). Please make sure to renew
your certificate before then, or visitors to your website will encounter errors.

example.com

For any questions or support, please visit https://community.letsencrypt.org/.
Unfortunately, we can't provide support by email.

For details about when we send these emails, please visit
https://letsencrypt.org/docs/expiration-emails/. In particular, note
that this reminder email is still sent if you've obtained a slightly
different certificate by adding or removing names. If you've replaced
this certificate with a newer one that covers more or fewer names than
the list above, you may be able to ignore this message.

If you want to stop receiving all email from this address, click xxxxxx
(Warning: this is a one-click action that cannot be undone)

Regards,
The Let's Encrypt Team

というわけで、更新しました。

サブドメインもまとめて更新する


実はサブドメインも2つ発行していました。発行時期がバラバラだったため、それぞれのドメインの期限が近づくごとに再発行するのは「めんどくさいな~」と思っていたのですが、強制で全て再発行できます。ちなみに、発行のレート制限がありますがこのレート制限は1週間の間に20ドメインまでという制限です。レート制限に関するドキュメントはこちらです。

更新作業


certbot-autoのパスを確認する

パッケージ管理システム以外でcertbot-autoをダウンロードしていたためcertbot-autoの場所を調べます。

1
2
find -name certbot-auto
/usr/bin/certbot-auto

Webサーバーを止める

Webサーバーを止めます。今回は手動更新しましたが、ドキュメントを読む限りでは自動更新する場合でも停止しないとダメみたいですね。

更新する

certbot-auto renew--force-renewオプションをつけて、すべての証明書を強制更新します。つけない場合は期限まで30日未満のものが更新されるそうです。

1
/usr/bin/certbot-auto renew --force-renew

下記のようなログが出て更新終了です。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Saving debug log to /var/log/letsencrypt/letsencrypt.log

-------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/example.com.conf
-------------------------------------------------------------------------------
Renewing an existing certificate
Performing the following challenges:
tls-sni-01 challenge for example.com
Waiting for verification...
Cleaning up challenges
Generating key (2048 bits): /etc/letsencrypt/keys/0003_key-certbot.pem
Creating CSR: /etc/letsencrypt/csr/0003_csr-certbot.pem

-------------------------------------------------------------------------------
new certificate deployed without reload, fullchain is
/etc/letsencrypt/live/example.com/fullchain.pem
-------------------------------------------------------------------------------

...上記のようなログが証明書の数だけ表示される

Congratulations, all renewals succeeded. The following certs have been renewed:
/etc/letsencrypt/live/example.com/fullchain.pem (success)
/etc/letsencrypt/live/a.example.com/fullchain.pem (success)
/etc/letsencrypt/live/b.example.com/fullchain.pem (success)

「Webサーバーを停止~3つの証明書の更新~Webサーバー再起動」の3ステップで1分かかりませんでした。後は、ブラウザとかで確認したら証明書の期限が更新されているのが解ると思います。