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: 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

Tolong bantu

Terima kasih


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

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.


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

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

"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.


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

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


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.


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


-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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.