Certbot: ImportError: modul 'pyOpenSSL' tidak memiliki fungsionalitas yang diperlukan. Coba perbarui ke v0.14 atau yang lebih baru.

Dibuat pada 5 Feb 2018  ·  17Komentar  ·  Sumber: certbot/certbot

Sistem operasi saya adalah (termasuk versi):

CentOS 7.4.1708 (64bit)

Saya menginstal Certbot dengan (certbot-auto, manajer paket OS, pip, dll):

centos 7 yum

Saya menjalankan perintah ini dan menghasilkan output ini:

sudo certbot --authenticator standalone --installer nginx --pre-hook "nginx -s stop" --post-hook "nginx"

keluaran:
Traceback (most recent call last): File "/bin/certbot", line 9, in <module> load_entry_point('certbot==0.20.0', 'console_scripts', 'certbot')() File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 572, i n load_entry_point return get_distribution(dist).load_entry_point(group, name) File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2755, in load_entry_point return ep.load() File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2408, in load return self.resolve() File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2414, in resolve module = __import__(self.module_name, fromlist=['__name__'], level=0) File "/usr/lib/python2.7/site-packages/certbot/main.py", line 19, in <module> from certbot import client File "/usr/lib/python2.7/site-packages/certbot/client.py", line 11, in <module > from acme import client as acme_client File "/usr/lib/python2.7/site-packages/acme/client.py", line 32, in <module> requests.packages.urllib3.contrib.pyopenssl.inject_into_urllib3() # type: i gnore File "/usr/lib/python2.7/site-packages/urllib3/contrib/pyopenssl.py", line 112 , in inject_into_urllib3 _validate_dependencies_met() 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.

Perilaku Certbot berbeda dari yang saya harapkan karena:

saya mengecualikannya untuk memberi saya sertifikat tetapi itu memberikan kesalahan itu. sudah mencoba memperbarui pyOpenSSL, tetapi tidak berhasil

Berikut adalah log Certbot yang menunjukkan masalah (jika tersedia):

Log disimpan di /var/log/letsencrypt secara default. Jangan ragu untuk menyunting domain, email, dan alamat IP sesuai keinginan Anda.

Folder tidak ada

Berikut adalah blok server nginx yang relevan atau virtualhost Apache untuk domain yang saya konfigurasikan:

bagian belakang hulu {
#server datanet
server 127.0.0.1:19999;
tetap hidup 64;
}

server {
# nginx mendengarkan ini
mendengarkan 80;

# the virtual host name of this
server_name netdata.mydomain.fi;

location / {
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://backend;
    proxy_http_version 1.1;
    proxy_pass_request_headers on;
    proxy_set_header Connection "keep-alive";
    proxy_store off;
}

}

unplanned

Komentar yang paling membantu

coba pip install --upgrade --force-reinstall 'requests==2.6.0'

Semua 17 komentar

centos-release-7-4.1708.el7.centos.x86_64

ImportError: modul 'pyOpenSSL' tidak memiliki fungsionalitas yang diperlukan. Coba perbarui ke v0.14 atau yang lebih baru.

tingkatkan pyOpenSSL 0.13.1 dari ke pyOpenSSL 17.5.0

saat menurunkan:

sudo pip install pyOpenSSL==0.15.1

kesalahan yang sama

ImportError: modul 'pyOpenSSL' tidak memiliki fungsionalitas yang diperlukan. Coba perbarui ke v0.14 atau yang lebih baru.

coba pip install --upgrade --force-reinstall 'requests==2.6.0'

Jangan mencampur paket yang diinstal yum melalui paket pip . Perbaikan yang tepat melibatkan penghapusan paket pip dan menginstal semuanya dari yum . Saya telah menguraikannya di sini .

Anda tidak memerlukan pyOpenSSL yang lebih baru di CentOS 7 untuk menjalankan certbot!

pip uninstall requests
yum reinstall python-requests

pip uninstall six
yum reinstall python-six

pip uninstall urllib3
yum reinstall python-urllib3

Bug ini masih ada di RHEL 7

Traceback (most recent call last):
  File "/bin/certbot", line 9, in <module>
    load_entry_point('certbot==0.22.2', 'console_scripts', 'certbot')()
  File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 558, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2682, in load_entry_point
    return ep.load()
  File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2355, in load
    return self.resolve()
  File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2361, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/lib/python2.7/site-packages/certbot/main.py", line 20, in <module>
    from certbot import client
  File "/usr/lib/python2.7/site-packages/certbot/client.py", line 13, in <module>
    from acme import client as acme_client
  File "/usr/lib/python2.7/site-packages/acme/client.py", line 33, in <module>
    requests.packages.urllib3.contrib.pyopenssl.inject_into_urllib3()  # type: ignore
  File "/usr/lib/python2.7/site-packages/urllib3/contrib/pyopenssl.py", line 112, in inject_into_urllib3
    _validate_dependencies_met()
  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.

Sangat memberatkan. Aku mulai membenci Centos.

Mencoba memperbarui pyOpenSSL di CentOS, dapatkan kesalahan berikut:

sudo pip install pyOpenSSL==0.15.1
Mengumpulkan pyOpenSSL==0.15.1
Mengunduh https://files.pythonhosted.org/packages/37/2f/840f2656e4bcf257cb814825bb751a9197ca6f39f1fa036ab111920ac7ef/pyOpenSSL-0.15.1-py2.py3-none-any.whl (102kB)
100% |████████████████████████████████| 112kB 1.9MB/dtk
Persyaratan sudah terpenuhi: enam>=1.5.2 di /usr/lib/python2.7/site-packages (dari pyOpenSSL==0.15.1) (1.9.0)
Persyaratan sudah terpenuhi: kriptografi>=0,7 di /usr/lib64/python2.7/site-packages (dari pyOpenSSL==0.15.1) (2.3.1)
Persyaratan sudah terpenuhi: idna>=2.1 di /usr/lib/python2.7/site-packages (dari kriptografi>=0.7->pyOpenSSL==0.15.1) (2.7)
Persyaratan sudah terpenuhi: enum34; python_version < "3" di /usr/lib/python2.7/site-packages (dari kriptografi>=0.7->pyOpenSSL==0.15.1) (1.0.4)
Persyaratan sudah terpenuhi: cffi!=1.11.3,>=1.7 di /usr/lib64/python2.7/site-packages (dari kriptografi>=0.7->pyOpenSSL==0.15.1) (1.11.5)
Persyaratan sudah terpenuhi: asn1crypto>=0.21.0 di /usr/lib/python2.7/site-packages (dari kriptografi>=0.7->pyOpenSSL==0.15.1) (0.24.0)
Persyaratan sudah terpenuhi: ipaddress; python_version < "3" di /usr/lib/python2.7/site-packages (dari kriptografi>=0.7->pyOpenSSL==0.15.1) (1.0.16)
Persyaratan sudah terpenuhi: pycparser di /usr/lib/python2.7/site-packages (dari cffi!=1.11.3,>=1.7->cryptography>=0.7->pyOpenSSL==0.15.1) (2.14)
Menginstal paket yang dikumpulkan: pyOpenSSL
Ditemukan instalasi yang ada: pyOpenSSL 0.13.1
Tidak dapat menghapus 'pyOpenSSL'. Ini adalah proyek yang diinstal distutil dan dengan demikian kami tidak dapat secara akurat menentukan file mana yang menjadi miliknya yang hanya akan menyebabkan penghapusan sebagian.

Sedikit konteks: paket dist untuk pyOpenSSL ada di 0.13.1. untuk menghapusnya untuk memperbaruinya melalui pip - Yum membuat saya menghapus certbot. Mempertimbangkan certbot adalah satu-satunya alasan saya perlu memperbarui pyOpenSSL - semacam menempatkan kami dalam tangkapan 22.

yum info pyOpenSSL
Plugin yang dimuat: cermin tercepat, langpacks
Memuat kecepatan cermin dari file host yang di-cache

  • base: repos.dfw.quadranet.com
  • epel: mirror.nodesdirect.com
  • tambahan: reflektor.westga.edu
  • pembaruan: repo1.dal.innoscale.net
    Paket Terpasang
    Nama : pyOpenSSL
    Lengkungan: x86_64
    Versi: 0.13.1
    Rilis : 3.el7
    Ukuran : 628 k
    Repo: terpasang
    Dari repo: basis
    Ringkasan: Modul pembungkus Python di sekitar perpustakaan OpenSSL
    URL: http://pyopenssl.sourceforge.net/
    Lisensi: ASL 2.0
    Deskripsi : Pembungkus tingkat tinggi di sekitar subset perpustakaan OpenSSL, termasuk antara lain
    : * Objek SSL.Connection, membungkus metode portabel Python
    : soket
    : * Panggilan balik ditulis dengan Python
    : * Mekanisme penanganan kesalahan yang luas, mencerminkan kode kesalahan OpenSSL

Demi debugging dan juga untuk itu, saya menghapus pyOpenSSL dist (dan dengan demikian certbot), melakukan instalasi pip pyOpenSSL, dan menginstal ulang certbot. Yum menimpa pyOpenSSL 0.15.1 dengan 0.13.1....dan hasil yang sama ketika saya mencoba memperbarui dengan certbot.

Saya kemudian mencoba sudo pip install --upgrade pyopenssl - dan pesan kesalahan yang sama tentang versi yang diinstal distutil.

Tidak ada solusi hari ini - tebak sertifikat saya akan kedaluwarsa

acme.sh berfungsi, saya sudah menyerah pada certbot;)

Teman-teman, sebenarnya menemukan perbaikan untuk ini. Saya tidak dapat mengambil kredit untuk melakukan apa pun selain menemukan artikel: https://medium.com/@getpagespeed/fix -importerror-pyopenssl-module-missing-required-functionality-e1c514797204

Semua pujian untuk Danila Vershinin karena menemukan perbaikannya!

Saya hanya dapat menambahkan bahwa jika Anda menginstal certbot dan aws cli maka kemungkinan besar masalah itu akan terjadi.
dari penelitian cepat saya tampaknya menginstal paket sistem seperti yang disarankan break aws cli. memperbaiki aws cli merusak certbot dan lain-lain jadi sangat tidak menyenangkan :)

Teman-teman, sebenarnya menemukan perbaikan untuk ini. Saya tidak dapat mengambil kredit untuk melakukan apa pun selain menemukan artikel: https://medium.com/@getpagespeed/fix -importerror-pyopenssl-module-missing-required-functionality-e1c514797204

Semua pujian untuk Danila Vershinin karena menemukan perbaikannya!

Perbaikan tidak bekerja untuk saya - tidak ada paket pip yang diinstal dan semua yang terdaftar melaporkan yum sebagai sudah diinstal dan terbaru.

Mengenai memiliki aws cli dan certbot pada sistem yang sama.

Itu datang ke versi urllib3 yang saling bertentangan.
awscli-1.16.81 membutuhkan urllib3-1.24.1 dan python2-certbot-0.27.1-1.el7.noarch.rpm bekerja dengan urllib3-1.10.2 .
Versi yang lebih baru memberikan kesalahan yang disebutkan.

Saya tidak dapat membuatnya bekerja bersama, bahkan menginstal awscli dengan --user memberikan masalah yang sama, karena urllib yang lebih baru kemudian ditempatkan di /root/.local/lib dan certbot berjalan cari disini juga...

Saya tidak bisa membuatnya bekerja bersama, bahkan menginstal awscli dengan --user memberikan masalah yang sama, karena urllib yang lebih baru kemudian ditempatkan di /root/.local/lib dan certbot juga mencari di sini ...

Punya masalah yang sama dengan versi urllib3 yang saling bertentangan setelah menginstal aws cli. Akhirnya, setelah memperbaiki certbot saya menginstal aws cli menggunakan virtualenv.
https://docs.aws.amazon.com/cli/latest/userguide/install-virtualenv.html
Sekarang, certbot dan aws cli keduanya baik-baik saja.

Saya juga menginstal awscli menggunakan paket penginstal yang mereka sediakan, sehingga awscli mandiri.

https://docs.aws.amazon.com/cli/latest/userguide/install-bundle.html

Cara lain mengatasi konflik antara awscli dan certbot adalah menginstal python36 dan menjalankan awscli menggunakannya.

Bisakah paket certbot tidak menginstal modul python di lingkungannya sendiri atau kurang ketat dalam hal persyaratan versi?

Apakah halaman ini membantu?
0 / 5 - 0 peringkat