Let's Encrypt 証明書更新時のエラー対処 Amazon Linux AMI

Amazon EC2 instance

証明書の更新時、以下のエラーが出ました。

sudo ./certbot-auto renew
Error: couldn't get currently installed version for /opt/eff.org/certbot/venv/bin/letsencrypt:
Traceback (most recent call last):
File "/opt/eff.org/certbot/venv/bin/letsencrypt", line 7, in
from certbot.main import main
File "/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/certbot/main.py", line 9, in
import zope.component
File "/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/zope/component/__init__.py", line 16, in
from zope.interface import Interface
ImportError: No module named interface


以下のコマンドを実行します。

unset PYTHON_INSTALL_LAYOUT
sudo /opt/eff.org/certbot/venv/local/bin/pip install --upgrade certbot
Successfully installed PyOpenSSL-17.3.0 asn1crypto-0.23.0 certifi-2017.11.5 cffi-1.11.2 chardet-3.0.4 cryptography-2.1.3 enum34-1.1.6 future-0.16.0 idna-2.6 ipaddress-1.0.18 parsedatetime-2.4 pbr-3.1.1 pycparser-2.18 pytz-2017.3 requests-2.18.4 six-1.11.0 urllib3-1.22 zope.component-4.4.1 zope.event-4.3.0 zope.interface-4.4.3


再度、証明書を更新します。

sudo ./certbot-auto renew
new certificate deployed with reload of apache server; fullchain is
/etc/letsencrypt/live/www.---.com/fullchain.pem
Congratulations, all renewals succeeded. The following certs have been renewed:
/etc/letsencrypt/live/www.---.com/fullchain.pem (success)


Apacheを再起動します。

sudo service httpd restart


更新後に証明書の情報から有効期間を確認しましょう。
有効期間が更新されていれば成功です。


・参考
Amazon Linux で Let's Encrypt のエラーが出た場合の対処 - らくがきちょう

ImportError: No module named interface from zope.interface · Issue #5100 · certbot/certbot · GitHub