Let’s Encrypt 証明書更新エラー(couldn’t get currently installed version) Amazon Linux+Nginx

AWS EC2(Amazon Linux+Nginx)の環境でLet’s EncryptのSSL/TLS証明書を更新しようとすると以下のエラーが出るようになってしまいました。。

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 10, in 
    import josepy as jose
  File "/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/josepy/__init__.py", line 44, in 
    from josepy.interfaces import JSONDeSerializable
  File "/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/josepy/interfaces.py", line 8, in 
    from josepy import errors, util
  File "/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/josepy/util.py", line 4, in 
    import OpenSSL
  File "/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/OpenSSL/__init__.py", line 8, in 
    from OpenSSL import rand, crypto, SSL
  File "/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/OpenSSL/rand.py", line 12, in 
    from OpenSSL._util import (
  File "/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/OpenSSL/_util.py", line 6, in 
    from cryptography.hazmat.bindings.openssl.binding import Binding
ImportError: No module named cryptography.hazmat.bindings.openssl.binding

赤字部分を見るとどうもLet’s Encryptモジュールのバージョンが古いからエラーになっているのかと思われ、赤太字”/opt/eff.org/certbot/venv/bin”直下にあるpipを使って以下のようにLet’s Encryptのモジュールを更新しました。

unset PYTHON_INSTALL_LAYOUT  # 環境変数を削除
/opt/eff.org/certbot/venv/bin/pip install --upgrade certbot  # Let's Encryptモジュールを更新

後は「Nginx停止 → SSL/TLS証明書を更新 → Nginx起動」でうまくいきました。

service nginx stop  # Nginx停止
./certbot-auto renew  # SSL/TLS証明書更新
service nginx start  # Nginx起動
sponsor