Let’s Encryptの証明書が更新できない危機

今ではなくてはならない存在となった無料証明書のLet’s Encrypt。

例にもれず、このサイトの証明書としても利用させてもらっている。

が、次のようなメールが来て、更新ができていないことに気づいた。

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

色々思い出しながら、次のコマンドで、手動で更新を試みる。

# /root/certbot/certbot-auto renew

が、長時間処理した後、次のようなエラーで更新が失敗した。

Installing Python packages…
Had a problem while installing Python packages.
pip prints the following errors:
 :(略)
raise ReadTimeoutError(self._pool, None, ‘Read timed out.’)
ReadTimeoutError: HTTPSConnectionPool(host=’files.pythonhosted.org’, port=443): Read timed out.
Certbot has problem setting up the virtual environment.
We were not be able to guess the right solution from your pip
output.
Consult https://certbot.eff.org/docs/install.html#problems-with-python-virtual-environment
for possible solutions.
You may also find some support resources at https://certbot.eff.org/support/ .

いろいろ調べた結果、原因はpipのインストールのタイムアウト。

じゃあ、タイムアウト時間を伸ばすにはどうするのか?

# mkdir ~/.pip
# vi ~/.pip/pip.conf

で、次の2行のファイルを作る。

[global]
timeout = 1800

これでpipのタイムアウトが30分(30×60秒=1800秒)となる。

さて、もとに戻って、再度更新のためのコマンドを実行しよう。

# /root/certbot/certbot-auto renew

時間はかかったが問題なく更新され、危機は回避された。

しかしこれって、仮想サーバの環境が悪いからじゃね?

しらんけど。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です