LetsEncrypt用のCertBotの設定についてサポートが必要です
CentOS 7でPython 2.7を使用して実行しています。
Certbotを実行すると、次のエラーが発生します。
[root@li86-193 frappe-bench]#certbot certonly --manual
Traceback (most recent call last):
File "/usr/bin/certbot", line 7, in <module>
from certbot.main import main
File "/usr/lib/python2.7/site-packages/certbot/main.py", line 21, in <module>
from certbot import client
File "/usr/lib/python2.7/site-packages/certbot/client.py", line 10, in <module>
from acme import client as acme_client
File "/usr/lib/python2.7/site-packages/acme/client.py", line 31, in <module>
requests.packages.urllib3.contrib.pyopenssl.inject_into_urllib3()
File "/usr/lib/python2.7/site-packages/requests/packages/urllib3/contrib/pyopenssl.py", line 112, in inject_into_urllib3
_validate_dependencies_met()
File "/usr/lib/python2.7/site-packages/requests/packages/urllib3/contrib/pyopenssl.py", line 147, in _validate_dependencies_met
raise ImportError("'pyOpenSSL' module missing required functionality. "
ImportError: 'pyOpenSSL' module missing required functionality. Try upgrading to v0.14 or newer.
[root@li86-193 frappe-bench]# pip show certbot
Name: certbot
Version: 0.11.1
Summary: ACME client
Home-page: https://github.com/letsencrypt/letsencrypt
Author: Certbot Project
Author-email: [email protected]
License: Apache License 2.0
Location: /usr/lib/python2.7/site-packages
Requires: ConfigArgParse, configobj, zope.component, pytz, setuptools, cryptography, zope.interface, pyrfc3339, mock, parsedatetime, six, acme, PyOpenSSL
[root@li86-193 frappe-bench]# pip show pyopenssl
Name: pyOpenSSL
Version: 16.2.0
Summary: Python wrapper module around the OpenSSL library
Home-page: https://pyopenssl.readthedocs.io/
Author: Hynek Schlawack
Author-email: [email protected]
License: Apache License, Version 2.0
Location: /usr/lib/python2.7/site-packages
Requires: six, cryptography
助けてください
ありがとうございました
CentOS/RHELシステムにcertbotを手動でインストールしないでください。それは巨大な混乱を引き起こすだけです。代わりに、EPELからインストールしてください。
yum install epel-release
yum install certbot
私は過去2か月間に2つの別々のCentos7システムで同じ問題を2回経験しました。これは私のために働いたものです:
これらの手順を完了した後、certbotを使用して証明書を正常に更新することができました。
同じ問題が発生しています。 python venvを使用して、pipを使用してcertbotを動作させることができました。
手順:virtualenvをインストールする
pip install virtualenv --upgrade
Virtualenvを作成する
virtualenv -p /usr/bin/python2.7 certbot
certbot
virtualenvをアクティブ化
. /root/certbot/bin/activate
あなたのプロンプトはこのようなものになるかもしれません
(certbot) [root@hostname ~]#
次に、証明書ボットをインストールします
pip install certbot
完了したら、certbot
virtualenvの下でcertbot
コマンドをテストできますが、cronを使用して証明書ボットの更新を設定する場合、これは実用的ではありません。仮想環境を非アクティブにし、
(certbot) [root@hostname ~]# deactivate
今からcertbotコマンドを実行します
/root/certbot/bin/certbot
これは私のために働いているようです。
ここからrpmを取得します: http://rpm.pbone.net/index.php3/stat/4/idpl/31446026/dir/centos_7/com/pyOpenSSL-0.15.1-1.el7.noarch。 rpm.html
wget ftp://ftp.muug.mb.ca/mirror/centos/7.2.1511/cloud/x86_64/openstack-mitaka/common/pyOpenSSL-0.15.1-1.el7.noarch.rpm
Sudo rpm -Uvh pyOpenSSL-0.15.1-1.el7.noarch.rpm
Sudo yum install certbot
正しい修正は次のとおりです。
mv /usr/lib64/python2.7/site-packages/OpenSSL /usr/lib64/python2.7/site-packages/pyOpenSSL
Cnritng frim githubに感謝します。
yum
パッケージを介してpip
インストール済みパッケージを混在させないでください。適切な修正には、pipパッケージの削除とyum
からのすべてのインストールが含まれます。私はそれを概説しました ここ 。
Certbotを実行するためにCentOS 7で新しいpyOpenSSLを使用する必要はありません。
pip uninstall requests
yum reinstall python-requests
pip uninstall six
yum reinstall python-six
pip uninstall urllib3
yum reinstall python-urllib3
実行するだけで機能しました
Sudo pip install pyOpenSSL==0.14.0
0.13バージョンを削除して0.14をインストールすると、certbotは正常に機能しました。
Epelソースのバージョンが古すぎるようです。yumバージョンのcertbotを削除して、pipでインストールできます
0.9.3でも同じ問題が発生しました。 nginxプラグインをインストールしたことが原因です。
動作しているインストールを簡単に再現できます。
docker run -it --rm centos:centos7 bash yum -y install epel-release yum -y install certbot certbot -h