Certbot: ImportError 'pyOpenSSL'モゞュヌルに必芁な機胜がありたせん

䜜成日 2017幎04月17日  Â·  35コメント  Â·  ゜ヌス: certbot/certbot

私のオペレヌティングシステムはバヌゞョンを含むです

CentOSLinuxリリヌス7.3.1611

Certbotをcertbot-auto、OSパッケヌゞマネヌゞャヌ、pipなどでむンストヌルしたした

OSパッケヌゞャヌマネヌゞャヌ

このコマンドを実行するず、次の出力が生成されたした。

certbotの曎新

トレヌスバック最埌の最埌の呌び出し
ファむル "/ bin / certbot"、7行目、
certbot.mainからimportmain
ファむル "/usr/lib/python2.7/site-packages/certbot/main.py"、17行目
certbotむンポヌトクラむアントから
ファむル "/usr/lib/python2.7/site-packages/certbot/client.py"、10行目
acmeむンポヌトクラむアントからacme_clientずしお
ファむル "/usr/lib/python2.7/site-packages/acme/client.py"、31行目
requests.packages.urllib3.contrib.pyopenssl.inject_into_urllib3タむプ無芖
inject_into_urllib3のファむル "/usr/lib/python2.7/site-packages/requests/packages/urllib3/contrib/pyopenssl.py"、行112
_validate_dependencies_met
ファむル "/usr/lib/python2.7/site-packages/requests/packages/urllib3/contrib/pyopenssl.py"、147行目、_validate_dependencies_met
ImportError "'pyOpenSSL'モゞュヌルに必芁な機胜がありたせん。"
ImportError 'pyOpenSSL'モゞュヌルに必芁な機胜がありたせん。 v0.14以降にアップグレヌドしおみおください。

Certbotの動䜜は、次の理由で私が期埅したものずは異なりたした。

゚ラヌではなく、正垞に曎新されるはずです。

問題を瀺すCertbotログは次のずおりです利甚可胜な堎合。

ログはデフォルトで/var/log/letsencrypt保存されたす。 必芁に応じお、ドメむン、電子メヌル、IPアドレスを自由に線集しおください。

ログ゚ントリはありたせん。 pyopensslを削陀しお再むンストヌルしたした。

pip show pyOpenssl

名前pyOpenSSL
バヌゞョン16.2.0
抂芁OpenSSLラむブラリのPythonラッパヌモゞュヌル
ホヌムペヌゞ https 
著者Hynek Schlawack
著者-メヌル [email protected]
ラむセンスApacheラむセンス、バヌゞョン2.0
堎所/usr/lib64/python2.7/site-packages
必芁なもの6、暗号化

ただし、゚ラヌは匕き続き発生したす。 䜕か案が 

最も参考になるコメント

みんな、 pipものを介しおyumむンストヌルされたパッケヌゞを混ぜないでください。 適切な修正には、pipパッケヌゞを削陀し、 yumからすべおをむンストヌルするこずが含たれたす。 ここで抂説し

certbotを実行するためにCentOS7で新しいpyOpenSSLは必芁ありたせん 蚀うたでもなく、3番目のパッケヌゞに䟝存しおも、最終的には良いものにはなりたせん:)

pip uninstall requests
yum reinstall python-requests

pip uninstall six
yum reinstall python-six

pip uninstall urllib3
yum reinstall python-urllib3

党おのコメント35件

おそらく、urllib3が混乱するように、耇数のpyOpenSSLバヌゞョンがありたす。 /usr/lib/python2.7/site-packages/requests/packages/urllib3/contrib/pyopenssl.pyには、次のような行がありたす。

    # pyOpenSSL 0.14 and above use cryptography for OpenSSL bindings. The _x509
    # attribute is only present on those versions.
    from OpenSSL.crypto import X509
    x509 = X509()
    if getattr(x509, "_x509", None) is None:
        raise ImportError("'pyOpenSSL' module missing required functionality. "
                          "Try upgrading to v0.14 or newer.")

いく぀かのデバッグコヌドを远加しお、出力を確認できたすか

    # pyOpenSSL 0.14 and above use cryptography for OpenSSL bindings. The _x509
    # attribute is only present on those versions.
    import OpenSSL.crypto
    print(OpenSSL.crypto)
    from OpenSSL.crypto import X509
    x509 = X509()
    if getattr(x509, "_x509", None) is None:
        raise ImportError("'pyOpenSSL' module missing required functionality. "
                          "Try upgrading to v0.14 or newer.")

Pythonはタブが奜きではないこずに泚意しおください。 識別のために垞にスペヌスを挿入しおください。 たた、このファむルを倉曎するにはrootが必芁です。

出力は次のずおりです。

certbotの曎新



トレヌスバック最埌の最埌の呌び出し
ファむル "/ bin / certbot"、7行目、
certbot.mainからimportmain
ファむル "/usr/lib/python2.7/site-packages/certbot/main.py"、17行目
certbotむンポヌトクラむアントから
ファむル "/usr/lib/python2.7/site-packages/certbot/client.py"、10行目
acmeむンポヌトクラむアントからacme_clientずしお
ファむル "/usr/lib/python2.7/site-packages/acme/client.py"、31行目
requests.packages.urllib3.contrib.pyopenssl.inject_into_urllib3タむプ無芖
inject_into_urllib3のファむル "/usr/lib/python2.7/site-packages/requests/packages/urllib3/contrib/pyopenssl.py"、行112
_validate_dependencies_met
ファむル "/usr/lib/python2.7/site-packages/requests/packages/urllib3/contrib/pyopenssl.py"、149行目、_validate_dependencies_met
ImportError "'pyOpenSSL'モゞュヌルに必芁な機胜がありたせん。"
ImportError 'pyOpenSSL'モゞュヌルに必芁な機胜がありたせん。 v0.14以降にアップグレヌドしおみおください。

/usr/lib64/python2.7/site-packages/OpenSSL/crypto.so

このパスは、以前のpyOpenSSLパッケヌゞのように芋えたす。 yumを介しおpyOpenSSLを削陀し、再詊行できたすか

私はcentos7でも同じ問題を抱えおいたす。 pyOpenSSL.x86_64 00.13.1-3.el7を削陀しおも、 yum install certbot再むンストヌルされるため、圹に立ちたせん。

しかし、壊れたRPMの回避策を芋぀けたした。

yum remove pyOpenSSL.x86_64
cd
mkdir virtualenv
cd virtualenv/
virtualenv --no-site-packages -p /usr/bin/python2.7 certbot
. ~/virtualenv/certbot/bin/activate
pip import six packaging appdirs
pip install setuptools --upgrade                                                                                                                                                                                    pip install certbot
certbot help

ここで同じ問題がcentosの新芏むンストヌルで発生したす。

rpm --query centos-release  # centos-release-7-3.1611.el7.centos.x86_64
wget ftp://ftp.muug.mb.ca/mirror/centos/7.3.1611/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
certbot renew  # OK

これはcertbotの問題ずいうよりはCentOSの問題だず思いたす。 pyOpenSSLが叀すぎるこずをCentOSに報告できる人はいたすか

pyOpenSSL 16.somethingにアップグレヌドした埌も、システムで問題が解決したせんでした。

同じ問題が最近私のCentOS7マシンで発生したした。
唯䞀の回避策はpip install pyOpenSSL=0.13.1

過去2か月間、倱敗したした。
そしお、私はちょうど今それを再詊行したした、それは再び倱敗したした。

出力

>> sudo certbot certonly --standalone -d mydomain.com

<< Traceback (most recent call last):
  File "/bin/certbot", line 9, in <module>
    load_entry_point('certbot==0.12.0', 'console_scripts', 'certbot')()
  File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 378, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 2566, in load_entry_point
    return ep.load()
  File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 2260, in load
    entry = __import__(self.module_name, globals(),globals(), ['__name__'])
  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.

それから私はこれを詊しおみお、それはうたくいきたす

_20170502100430

回答のリンク https 

参考たでに... CentOSでpipを介しおpyOpenSSLを曎新するこずは、そのようにyumを壊す可胜性があるため、䞀般的に安党ではありたせん。

どのcertbotパッケヌゞを䜿甚しおいたすか epel-testingから0.13.0をむンストヌルしお、システムに完党なyumアップデヌトがあるこずを垞に確認しおいただければ幞いです。

システムを修埩するには、yum restart pyOpenSSLを䜿甚する必芁がある堎合がありたすrpm -qV pyOpenSSLでシステムの状態を確認しおください。

そのパッケヌゞのsystemd曎新タむマヌに問題がありたす。そのため、安定させおいたせんが、certbotリク゚ストず手動のcertbot曎新を実行するだけで機胜したす。

0.14.0リリヌスも進行䞭です...そしお私は文字通りAWSでそれをテストしたした。

私は興味がありたす-元の䜜者はパッケヌゞマネヌゞャヌを介しおそれをむンストヌルしたした、それで私たちはどこにpipのバヌゞョンを固定したすか
人々はただこの問題を抱えおいたすか もしそうなら、どのむンストヌル方法を䜿甚しおいたすか

このDockerfileで説明されおいる方法を詊しおみおください。
https://github.com/identinetics/docker-nginx/blob/master/Dockerfile#L65

新しくむンストヌルしお曎新したcentOS7.3でもただ問題がありたす。
曎新されたpyOpenSSLrpmをむンストヌルするこずで問題を修正したしたpyOpenSSL-0.14-3.fc222は十分に芋えたしたが、pyOpenSSL-16.2.0-1.fc25は機胜したせんでしたが、他のものを壊しおいないこずを確認する方法は

https://www.rpmfind.net/linux/rpm2html/search.php?query=pyOpenSSL

ありがずう

@ tisc0この問題を解決するために、これをどのようにむンストヌルしお実行したかに぀いお、さらに詳しく

centos7 certbotパッケヌゞをビルドしたずき、AWSで問題なくテストしたした。確かに、あなたが説明したこずやこの問題が説明したこずではありたせん。

特にpyOpenSSLのようなコアパッケヌゞを䜿甚しお、centos7にそのようなfedorarpmを盎接むンストヌルするのはひどい考えです。

こんにちはHogarthj、
詳现が䞍足しおすみたせん、今日はちょっず忙しいです:)
芁するに 

  • fedora rpmをむンストヌルしおも問題は解決したせんでした芚えおいるように、certbot --helpのみが機胜しおいたした
  • パッケヌゞで長い間遊んだ埌、それが実際に別の新しいcentos 7ボックスパッケヌゞなしで動䜜しおいるこずを確認した埌、それらを再むンストヌルし、最終的にurllib3に関する別の゚ラヌが発生したしたこれも曎新バヌゞョンのむンストヌルを芁求したす。私は賌入したせんでした;]。
  • rpm -eではなくyumずすべおの䟝存パッケヌゞを䜿甚しおurllib3を削陀/再むンストヌルするこずにしたした。 この堎合、ipa-clientによっおも必芁ずされるいく぀かの䞀般的なパッケヌゞ...
  • urllib3ずcertbotをこの順序で再むンストヌルしたした動䜜したした
  • ぀いにipa-clientを再むンストヌルしたしたが、動䜜しおいたす。

[ root @ c7-dse〜 ]
...
䟝存関係

==============
パッケヌゞ
削陀
python-urllib3
削陀
certbot
ipa-client
python-requests
python2-acme
python2-certbot
python2-ipaclient
python2-ipalib

䞀郚のパッケヌゞを再むンストヌルするこずで機胜する理由を説明するアむデアは倧歓迎です:)

@ tisc0远加の詳现をありがずう

パッケヌゞを匷制的にむンストヌル/削陀するず、倚くの堎合、問題が発生する可胜性がありたす。システムラむブラリのpipアップグレヌドも同様です。

src.rpmからパッケヌゞ自䜓の再構築を実行せずに、CentOSで䜿甚するためにFedoraパッケヌゞを取埗するこずはめったに良い考えではありたせん。

パッケヌゞを再むンストヌルするこずにより䟝存関係の問題で削陀ずむンストヌルを行うのではなく、yumの再むンストヌルが呜の恩人になる可胜性がありたす、元のファむルが適切に配眮されおいるこずが確認されたす。

CentOSパッケヌゞを再むンストヌルするずうたくいくず聞いおずおもうれしいです:)

@ tisc0のセットアップが

CentOS7の堎合は、「mv /usr/lib64/python2.7/site-packages/OpenSSL /usr/lib64/python2.7/site-packages/pyOpenSSL」を実行するだけで、それは私にずっお魅力のように機胜したす!!!

ダヌティハック1st_place_medal ;

同じ問題が発生したした。これは、 pip install -UがRPMからむンストヌルされたPythonモゞュヌルを䞊曞きしたためです。

これを解決するために、私は次のこずを行いたした。

問題

  File "/usr/lib/python2.7/site-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<strong i="12">@kolla</strong> ~]# rpm -qf /usr/lib64/python2.7/site-packages/OpenSSL/
pyOpenSSL-0.13.1-3.el7.x86_64
[root<strong i="13">@kolla</strong> ~]# rpm -qf /usr/lib/python2.7/site-packages/urllib3
python-urllib3-1.10.2-2.el7_1.noarch

[root<strong i="14">@kolla</strong> ~]# rpm --nodeps -e python-urllib3
[root<strong i="15">@kolla</strong> ~]# rm -rf /usr/lib/python2.7/site-packages/urllib3/
[root<strong i="16">@kolla</strong> ~]# yum -y install python-urllib3

問題

  File "/usr/lib/python2.7/site-packages/requests/__init__.py", line 90, in <module>
    from urllib3.exceptions import DependencyWarning
ImportError: cannot import name DependencyWarning
[root<strong i="20">@kolla</strong> ~]# rpm -qf /usr/lib/python2.7/site-packages/requests
python-requests-2.6.0-1.el7_1.noarch

解決

[root<strong i="24">@kolla</strong> ~]# rpm --nodeps -e python-requests
[root<strong i="25">@kolla</strong> ~]# rm -rf /usr/lib/python2.7/site-packages/requests
[root<strong i="26">@kolla</strong> ~]# yum -y install python-requests   

2018幎1月29日からの曎新

同じ問題に再び遭遇したしたが、今回はdockerコンテナを䜿甚する方がはるかに簡単でした:)

alias certbot='docker run --rm -ti -v /etc/letsencrypt:/etc/letsencrypt -p 80:80 certbot/certbot:v0.21.1'

@cnritngそれは私のためにも働きたす

ただこの問題を抱えおいる人は、これを詊しおください

rpm --query centos-release  # centos-release-7-3.1611.el7.centos.x86_64
wget ftp://ftp.muug.ca/mirror/centos/7/cloud/x86_64/openstack-newton/common/pyOpenSSL-0.15.1-1.el7.noarch.rpm
sudo rpm -Uvh pyOpenSSL-0.15.1-1.el7.noarch.rpm
sudo yum install certbot
certbot renew  # OK

@sulliwaneから。 ftp://ftp.muug.ca/mirror/...アドレスが倉曎されおいるこずに泚意しおください。

ありがずう@JellyBool

これを行い、すべおを修正したした。 yum install http://cbs.centos.org/kojifiles/packages/pyOpenSSL/16.2.0/3.el7/noarch/python2-pyOpenSSL-16.2.0-3.el7.noarch.rpm

みんな、 pipものを介しおyumむンストヌルされたパッケヌゞを混ぜないでください。 適切な修正には、pipパッケヌゞを削陀し、 yumからすべおをむンストヌルするこずが含たれたす。 ここで抂説し

certbotを実行するためにCentOS7で新しいpyOpenSSLは必芁ありたせん 蚀うたでもなく、3番目のパッケヌゞに䟝存しおも、最終的には良いものにはなりたせん:)

pip uninstall requests
yum reinstall python-requests

pip uninstall six
yum reinstall python-six

pip uninstall urllib3
yum reinstall python-urllib3

@dvershininからの䞊蚘の手順は私のためにトリックをしたした

たた、 @ dvershininが投皿したもので動䜜するように

CentOS7の堎合は、「mv /usr/lib64/python2.7/site-packages/OpenSSL /usr/lib64/python2.7/site-packages/pyOpenSSL」を実行するだけで、それは私にずっお魅力のように機胜したす!!!

* nixのようなシステムには、垞に同様の問題がありたす。ファむルの䟝存関係が壊れおいたす。

https://github.com/certbot/certbot/issues/4514#issuecomment -375741595
私のために働いた

ここにおそらく本圓の理由ず解決策がありたす
https://www.getpagespeed.com/troubleshooting/fix-importerror-pyopenssl-module-missing-required-functionality-try-upgrading-to-v0-14-or-newer

みんな、 pipものを介しおyumむンストヌルされたパッケヌゞを混ぜないでください。 適切な修正には、pipパッケヌゞを削陀し、 yumからすべおをむンストヌルするこずが含たれたす。 ここで抂説し

certbotを実行するためにCentOS7で新しいpyOpenSSLは必芁ありたせん 蚀うたでもなく、3番目のパッケヌゞに䟝存しおも、最終的には良いものにはなりたせん:)

pip uninstall requests
yum reinstall python-requests

pip uninstall six
yum reinstall python-six

pip uninstall urllib3
yum reinstall python-urllib3

ありがずうございたした 仕事です

@dvershininの修正は珟圚私には機胜したせん-圌がCentos7で説明した手順に埓った埌、次の゚ラヌが衚瀺されたす

VersionConflicturllib3 1.10.2/usr/lib/python2.7/site-packages、Requirement.parse 'urllib3> = 1.20、<1.26'

@ keir-lavelle私の修正は、 rootナヌザヌの䞋でpipを䜿甚しおシステムがひどく損傷した埌、システムを元の状態に埩元する詊みにすぎたせんこれは、倚くのチュヌトリアルで人々に行われおいたすが、 CentOS / RHELシステムでは絶察に行わ

したがっお、修正に冒険心がある堎合は、すべおのPythonパッケヌゞを削陀しおさらに修正しようずするリンクをたどるこずができたす yumもPythonベヌスです。これはさらに危険な䌁業です。 。 もっず壊すこずができるからです。

  • certbot機胜したスナップショット/バックアップからサヌバヌを埩元できる堎合は、問題ないはずです。
  • それ以倖の堎合は、「すべおのPythonパッケヌゞを削陀/再むンストヌルする」が修正する唯䞀の方法のようですただし、䜕らかの理由でyumを動䜜状態にできない堎合は、そうするこずの結果を必ず考慮しおください 。

そしおもちろん、もう䞀床芚えおおくず圹立ちたす。 root䞋でpipたたはpythonむンストヌルを䜿甚しないでください。 そもそもそういう颚に壊れたす。 それが起こらなければ-それは壊れないでしょう。

説明に時間を割いおいただきありがずうございたす。珟圚テストを行っおいるだけなので、サヌバヌは䜿い捚おなので、壊れおも倧したこずはありたせんが、情報に感謝したす。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡