certbot untuk mari kita enkripsi modul pyopenssl yang hilang

10

Saya perlu bantuan mengatur CertBot untuk LetsEncrypt

Saya menjalankan CentOS 7 dengan Python 2.7

Ketika saya menjalankan certbot saya mendapatkan kesalahan berikut:

[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

Tolong bantu

Terima kasih

cs378
sumber
Harap perbaiki pos Anda agar dapat dibaca, tracebacks semuanya kacau ... Juga, harap sertakan bagaimana Anda menginstal certbot, apa yang telah Anda lakukan untuk mencoba dan membuatnya berfungsi sejauh ini dan informasi apa pun yang mungkin sebenarnya membantu kami memahami mengapa Anda mendapatkan kesalahan ini.
Ginnungagap
Silakan lihat komentar saya untuk solusinya menggunakan virtualenv
Danie

Jawaban:

7

Jangan mencoba memasang certbot secara manual pada sistem CentOS / RHEL. Itu hanya membuat kekacauan besar. Sebaliknya, instal dari EPEL.

yum install epel-release
yum install certbot
Michael Hampton
sumber
1
Saya menginstal dari epel, dan saya masih mendapatkan masalah yang sama
chrismarx
7
Saya menjalankan paket certelot EPEL dan menyelesaikan masalah ini. Sesuatu yang lain di sistem saya telah memperbarui perpustakaan 'permintaan' ke yang terbaru (2.13.0 saat tulisan ini dibuat), tetapi RPM yang diinstal sebagai ketergantungan untuk certbot adalah 2.6.0. Bandingkan versi untuk pip list 2>/dev/null | grep requestsdan rpm -q python-requests --queryformat '%{VERSION}\n'. Jika mereka berbeda, cobalah pip install --upgrade --force-reinstall 'requests==2.6.0'.
Alan Ivey
4

Saya mengalami masalah yang sama ini dua kali pada 2 sistem Centos7 yang terpisah dalam 2 bulan terakhir. Inilah yang bekerja untuk saya:

  • yum menghapus pyOpenSSL [Ini akan menghapus certbot diinstal melalui epel]
  • yum install openssl-devel python-devel [Mungkin atau mungkin tidak benar-benar diperlukan]
  • pip instal certbot
  • pip instal certbot-apache

Setelah menyelesaikan langkah-langkah ini, saya berhasil memperbarui sertifikat saya dengan certbot.

bluemorpho
sumber
1
Ini berhasil. urllib3 menjadi bingung antara pip yang diinstal dan versi yum yang diinstal pyOpenSSL. Menghapus paket yum dan menginstal dengan pip muncul untuk memperbaiki ini.
scoota269
Setelah menerapkan tiga perintah pertama, saya mendapatkan error followin: UnknownExtra: requests 2.6.0 has no such extra feature 'security'ketika saya mengeksekusi$ certbot certonly ...
Pathros
3

Saya mengalami masalah yang sama. Menggunakan python venv saya bisa mendapatkan certbot bekerja menggunakan pip.

Langkah-langkah: Instal virtualenv

pip install virtualenv --upgrade

Buat virtualenv

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

Aktifkan certbotvirtualenv

. /root/certbot/bin/activate

Permintaan Anda mungkin berubah menjadi seperti ini

(certbot) [root@hostname ~]#

Kemudian pip instal certbot

pip install certbot

Setelah selesai Anda dapat menguji certbotperintah di bawah certbotvirtualenv, tetapi ini tidak praktis jika Anda akan menggunakan cron untuk mengatur pembaruan certbot. Jadi nonaktifkan lingkungan virtual,

(certbot) [root@hostname ~]# deactivate

Sekarang jalankan perintah certbot dari

/root/certbot/bin/certbot
Danie
sumber
2

Ini sepertinya bekerja untuk saya.

Ambil rpm dari sini: 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
pengguna353255
sumber
"ImportError: modul 'pyOpenSSL' hilang fungsionalitas yang diperlukan. Coba perbarui ke v0.14 atau lebih baru." Saya telah mengalami masalah ini dan akhirnya diselesaikan dengan menginstal 'pyOpenSSL-0.15.1-1.el7.noarch.rpm'
kai.fantasy
2

Perbaikan yang benar adalah:

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

Terima kasih cnritng fith github.

Tim Duncklee
sumber
Apakah keajaiban itu segera.
j4hangir
1

Jangan campur yumpaket yang diinstal melalui pipyang. Perbaikan yang tepat melibatkan menghapus paket pip dan menginstal semuanya yum. Saya sudah menguraikannya di sini .

Anda tidak perlu 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
Danila Vershinin
sumber
0

Saya memiliki masalah yang sama di 0.9.3. Itu disebabkan oleh menginstal plugin nginx.

Anda dapat dengan mudah mereproduksi instalasi yang berfungsi:

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

rhoerbe
sumber
ada solusi?
chrismarx
Tidak tahu di mana masalahnya. Saya menginstal ulang CentOS dan bekerja sekarang :(
cs378
0

hanya membuatnya bekerja dengan berlari

sudo pip install pyOpenSSL==0.14.0

itu menghapus versi 0,13 dan menginstal 0,14, maka certbot hanya berfungsi normal.

ignivs
sumber
Saya mendapatkan yang berikut: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

Tampaknya versi sumber epel terlalu tua, Anda dapat menghapus certbot versi yum dan menginstalnya

Yingjia
sumber
-4

Alih-alih certbot, klien letsencrypt memecahkan masalah bagi saya.

Anda dapat menghapus klien lain

pip uninstall certbot
pip uninstall pyopenssl

Dan kemudian instal letsencrypt:

pip install letsencrypt
Alexey K
sumber