今ではなくてはならない存在となった無料証明書の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
時間はかかったが問題なく更新され、危機は回避された。
しかしこれって、仮想サーバの環境が悪いからじゃね?
しらんけど。