CentOS 7でLet’s Encryptの証明書を手動で更新する方法

MiniTool_ad

CentOS 7でLet’s Encryptの証明書を手動で更新する方法

Let’s Encryptの証明書の有効期限は90日と短いため、CentOS 7などのLinux環境では、通常はcronやsystemd.timersを使って証明書の自動更新を設定しますが、環境によっては自動更新はせずに手動で更新を行いたいケースもあるでしょう。

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

動作環境

この記事は、以下の環境で実行した結果を基にしています。他のディストリビューションやバージョンでは、動作結果が異なる場合があることをご了承ください。

# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)

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

自動更新が設定されていない場合、更新期限まで30日を切ると以下のような内容でメールが送られてきます。

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.

CentOS 7で、Let's Encryptの証明書を手動更新するときは、以下のコマンドを実行することで、期限まで30日未満の証明書が更新されます。

# certbot renew

期限までに30日以上の猶予がある場合に、強制的に証明書を更新したいときは、以下のコマンドを実行します。

# certbot renew --force-renewal

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

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

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)
-------------------------------------------------------------------------------

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

# systemctl restart nginx

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

あとがき

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