Amazon Linux で Let's Encrypt のエラーが出た場合の対処
無料で SSL/TLS サーバ証明書を取得するには Let's Encrypt が便利です。 Let's Encrypt は Amazon Linux をまだ正式サポートしていないものの、とりあえず動作はするようです。 しかし、Amazon Linux 上で Let's Encrypt を実行するとエラーが出る場合があります。 今回は「環境変数 PYTHON_INSTALL_LAYOUT を削除」し、更に「~/.local ディレクトリを削除」することで Let's Encrypt を実行出来るようになりましたので、手順をメモしておきます。
Amazon Linux で Let's Encrypt を実行した際のエラー
Amazon Linux で Let's Encrypt で取得した証明書を更新しようとすると、以下のエラーになりました。
1
2
3
4
5
6
7
8
9
10
11
12
13
14 | # ./certbot-auto renew
Upgrading certbot-auto 0.12.0 to 0.14.2...
Replacing certbot-auto...
Creating virtual environment...
Installing Python packages...
Installation succeeded.
Traceback (most recent call last):
File "/root/.local/share/letsencrypt/bin/letsencrypt", line 7, in <module>
from certbot.main import main
File "/root/.local/share/letsencrypt/local/lib/python2.7/dist-packages/certbot/main.py", line 7, in <module>
import zope.component
File "/root/.local/share/letsencrypt/local/lib/python2.7/dist-packages/zope/component/__init__.py", line 16, in <module>
from zope.interface import Interface
ImportError: No module named interface
|
環境変数「PYTHON_INSTALL_LAYOUT」の削除
環境変数「PYTHON_INSTALL_LAYOUT
」を削除します。
| # env | grep PYTHON_INSTALL_LAYOUT
PYTHON_INSTALL_LAYOUT=amzn
# unset PYTHON_INSTALL_LAYOUT
# env | grep PYTHON_INSTALL_LAYOUT
#
|
しかし、今度は別のエラーになりました。
| # ./certbot-auto renew
Error: couldn't get currently installed version for /root/.local/share/letsencrypt/bin/letsencrypt:
Traceback (most recent call last):
File "/root/.local/share/letsencrypt/bin/letsencrypt", line 7, in <module>
from certbot.main import main
File "/root/.local/share/letsencrypt/local/lib/python2.7/dist-packages/certbot/main.py", line 7, in <module>
import zope.component
File "/root/.local/share/letsencrypt/local/lib/python2.7/dist-packages/zope/component/__init__.py", line 16, in <module>
from zope.interface import Interface
ImportError: No module named interface
|
~/.local の削除
次に ~/.local
を削除します(今回は移動し、実質的に削除されたのと同じ状態にしました)。
| # mv ~/.local ~/.local.bak
|
Let's Encrypt を再実行する
Let's Encrypt を再実行します。 --debug
オプションが無い為、Amazon Linux では実行出来ないよ、と怒られました。
| # ./certbot-auto renew
FATAL: Amazon Linux support is very experimental at present...
if you would like to work on improving it, please ensure you have backups
and then run this script again with the --debug flag!
Alternatively, you can install OS dependencies yourself and run this script
again with --no-bootstrap.
|
--debug
オプションを指定することで無事、証明書が更新されました!
| ./certbot-auto renew --debug
|