不足しているpyopensslモジュールをletsencryptするためのcertbot


10

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: client-dev@letsencrypt.org
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: hs@ox.cx
License: Apache License, Version 2.0
Location: /usr/lib/python2.7/site-packages
Requires: six, cryptography

助けてください

ありがとうございました


投稿が読みやすくなるように修正してください。トレースバックがすべて乱れています...また、certbotのインストール方法、これまでに動作させるために行ったこと、および実際に理由を理解するのに役立つ情報を含めてくださいこのエラーが発生しています。
Ginnungagap 2017

virtualenvを使用したソリューションのコメントを参照してください
Danie

回答:


7

CentOS / RHELシステムにcertbotを手動でインストールしないでください。それは巨大な混乱を引き起こすだけです。代わりに、EPELからインストールしてください。

yum install epel-release
yum install certbot

1
私はepelからインストールしましたが、それでも同じ問題が発生します
chrismarx

7
EPEL certbotパッケージを実行して、この問題を解決しました。私のシステムの他の何かが「リクエスト」ライブラリを最新のもの(この記事の執筆時点では2.13.0)に更新しましたが、certbotの依存関係としてインストールされるRPMは2.6.0です。以下のためのバージョンを比較pip list 2>/dev/null | grep requestsしてrpm -q python-requests --queryformat '%{VERSION}\n'。異なる場合は、を試してくださいpip install --upgrade --force-reinstall 'requests==2.6.0'
アランアイビー

4

この同じ問題を過去2か月間に2つの別々のCentos7システムで2回経験しました。これは私のために働いたものです:

  • yum remove pyOpenSSL [これはepel経由でインストールされたcertbotを削除します]
  • yum install openssl-devel python-devel [実際に必要な場合とそうでない場合があります]
  • pipインストールcertbot
  • pipインストールcertbot-apache

これらの手順を完了した後、certbotを使用して証明書を正常に更新することができました。


1
これはうまくいきました。urllib3は、piOpenがインストールされているバージョンと、yumがインストールされているバージョンのpyOpenSSLの間で混乱します。yumパッケージを削除し、pipを使用してインストールすると、これが修正されるようです。
scoota269 2017年

これらの最初の3つのコマンドを適用した後、私がfollowinエラーが表示されます。UnknownExtra: requests 2.6.0 has no such extra feature 'security'私は、実行時に$ certbot certonly ...
Pathros

3

同じ問題が発生しています。python venvを使用して、pipを使用してcertbotを動作させることができました。

手順:virtualenvをインストールする

pip install virtualenv --upgrade

virtualenvを作成する

virtualenv -p /usr/bin/python2.7 certbot

certbotvirtualenvをアクティブにする

. /root/certbot/bin/activate

あなたのプロンプトはこのようなものに変わるかもしれません

(certbot) [root@hostname ~]#

次に、pip install certbot

pip install certbot

完了するとcertbotcertbotvirtualenvの下でコマンドをテストできますが、cronを使用して証明書ボットの更新を設定する場合は、これは実用的ではありません。仮想環境を非アクティブにし、

(certbot) [root@hostname ~]# deactivate

今からcertbotコマンドを実行します

/root/certbot/bin/certbot

2

これは私のために働いているようです。

ここから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

「ImportError:「pyOpenSSL」モジュールに必要な機能がありません。v0.14以降にアップグレードしてください。」私はこの問題に遭遇し、「pyOpenSSL-0.15.1-1.el7.noarch.rpm」をインストールすることで最終的に解決しました
kai.fantasy

2

正しい修正は次のとおりです。

mv /usr/lib64/python2.7/site-packages/OpenSSL /usr/lib64/python2.7/site-packages/pyOpenSSL

cnritng frim githubに感謝します。


魔法はすぐにやった。
j4hangir

1

yumインストール済みのパッケージをpip1つを介して混在させないでください。適切な修正には、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

0

0.9.3でも同じ問題が発生しました。nginxプラグインをインストールしたことが原因です。

動作しているインストールを簡単に再現できます。

docker run -it --rm centos:centos7 bash yum -y install epel-release yum -y install certbot certbot -h


回避策はありますか?
chrismarx 2017

問題がどこにあったのか分からない。CentOSを再インストールしましたが、今は機能します:(
cs378

0

実行するだけで機能しました

sudo pip install pyOpenSSL==0.14.0

0.13バージョンを削除して0.14をインストールすると、certbotは正常に動作しました。


私は以下を得ます:ERROR: Cannot uninstall 'pyOpenSSL'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
Pathros

0

epelソースのバージョンが古すぎるようです。yumバージョンのcertbotを削除して、pipでインストールできます


-4

certbotではなく、letsencryptクライアントが問題を解決してくれました。

他のクライアントを削除できます

pip uninstall certbot
pip uninstall pyopenssl

そして、letsencryptをインストールします。

pip install letsencrypt
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.