Let’s Encryptの更新エラーを直す(certbot renew失敗)

Let's Encryptの更新エラーを直す(certbot renew失敗) サーバー

本日、無料SSLでおなじみのLet’s Encryptの更新チェック(certbot renew)をかけたら見慣れないエラーが発生して更新チェックが失敗する。

エラー内容はこれ↓

これを正常に更新(certbot renew)できるようにします。

※動作環境
CentOS Linux 7.6

スポンサーリンク

原因調査&対策

いつもLet’s Encryptの更新チェック(certbot renew)を行う際は、

にて確認のために事前にcertbotのアップデートを行うのだが、その際に

  • certbot.noarch 0:0.29.1-1.el7
  • python2-certbot.noarch 0:0.29.1-1.el7

の2つがアップデートされたのでcertbot関連の依存関係のエラーという可能性が高い。

エラーメッセージの末尾にも、
pkg_resources.DistributionNotFound: acme>=0.29.0
(和訳:acmeのバージョン0.29.0以上が無い)と書いてあるので、「acme」をyumで検索してみる。

python2-acme.noarchというのを発見。
これを更新すればOKっぽい。

これですぐに解決すると思ったが、
yum update python2-acme
で更新を試してもアップデートが存在しない。

そこでふと「certbot 関連のリポジトリはepel」と思い出し、epelを許可して、
yum –enablerepo=epel update python2-acme
で更新をかけてみる。

無事python2-acmeのアップデートが完了。
うっかりpython2-acmeのバージョンがずいぶんと古かったみたいですね…。

もう一度、エラーでこけたLet’s Encryptの更新チェック(certbot renew)を試してみる。

certbot renewが正常に終了し、Let’s Encryptの更新チェックが正常に完了しました。

スポンサーリンク

まとめ

certbot renewを行った際に、末尾が「pkg_resources.DistributionNotFound: acme>=0.29.0」というエラーを吐いたら、

でpython2-acmeを更新すればOKです。

「–enablerepo=epel」を入れてepelのリポジトリからpython2-acmeをアップデートするのがミソ。

以上で解決です。

【※ポイント】

Let’s Encryptの更新の際に、
「pkg_resources.DistributionNotFound: パッケージ名>=~」系のエラーが出たら、yumで「–enablerepo=epel」を付けて指定されたパッケージをインストール又はアップデートすれば大抵のエラーは直ります。
スポンサーリンク

Let’s Encryptの証明書を削除する方法

おまけですが、SSL設定に失敗して一からやり直す際や、ドメインを使わなくなった際などでLet’s Encryptの証明書を削除する方法も記載しておきます。

まず「certbot certificates」を実行して既存の証明書一覧を確認する。

不要なドメイン名(又はホスト名)を「certbot delete –cert-name」で削除する。

証明書が「/etc/letsencrypt/live/ドメイン名-0001/fullchain.pem」のように、ドメイン名の後に数字の連番が含まれる書式になっている場合は数字も含めて指定して削除してください。

正常に削除されたか「certbot certificates」で確認する。

最後に証明書のパスが記入されていたNginx、Apache、postfix、Dovecot、ProFTPDなどの各種サーバーの設定ファイルから削除したドメインの証明書のパスを削除して各種サーバーを全て再起動します。

以上でLet’s Encryptの証明書の削除は完了です。

スポンサーリンク

おまけ(SSL証明書の更新をcronで自動実行)

うっかりミスでLet’s EncryptのSSL証明書の更新を忘れてしまい、ある日突然SSLが無効にならないように、SSL証明書の更新作業はcronで自動化しておきましょう。

以下のページで解説しています。

Let's EncryptのSSL証明書の更新をcronで自動実行する
ブログに記事を追加しようと思い、WordPressにログインしようと思ったら「この接続ではプライバシーが保護されません」と表示されている。 しまった!Let's Encryptの期限切れだ! うっかりLet's Encr...

cronによる自動化設定はとても簡単ですのでやっておきましょう。

サーバー
スポンサーリンク
スポンサーリンク
Ketsunosukeをフォローする
己で解決!泣かぬなら己で鳴こうホトトギス