certbot для letsencrypt відсутнього модуля pyopenssl


10

Мені потрібна допомога з налаштуванням CertBot для LetsEncrypt

Я працюю на 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

Будь ласка, дивіться мій коментар до рішення, використовуючи virtualenv
Danie

Відповіді:


7

Не намагайтеся встановити certbot вручну в системах CentOS / RHEL. Це просто робить величезний безлад. Замість цього встановіть його з EPEL.

yum install epel-release
yum install certbot

1
Я встановив з epel, і я все ще отримую ту саму проблему
chrismarx

7
Я запустив пакет certbot EPEL і вирішив цю проблему. Щось ще в моїй системі було оновлено бібліотеку "запитів" до останнього (2.13.0 станом на цей текст), але RPM, встановлений як залежність для certbot, становить 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

Я стикався з цим самим випуском двічі на двох окремих системах Centos7 за останні 2 місяці. Це для мене працювало:

  • yum delete pyOpenSSL [Це видалить certbot, встановлений через epel]
  • yum install openssl-devel python-devel [Може або не може бути фактично необхідним]
  • піп встановити certbot
  • pip встановити certbot-apache

Після виконання цих кроків я зміг успішно відновити свої сертифікати за допомогою certbot.


1
Це спрацювало. urllib3 плутається між встановленим pip та yum встановленими версіями pyOpenSSL. Видалення пакетів yum та встановлення з допомогою pip видається для виправлення цього.
scoota269

Після застосування цих перших трьох команд, я отримую followin помилку: UnknownExtra: requests 2.6.0 has no such extra feature 'security'коли я виконую$ certbot certonly ...
Патросу

3

Я стикаюся з тим же питанням. Використовуючи python venv, мені вдалося налагодити роботу certbot за допомогою pip.

Етапи: Встановіть virtualenv

pip install virtualenv --upgrade

Створіть virtualenv

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

Активуйте certbotvirtualenv

. /root/certbot/bin/activate

Ваш запит може перетворитися на щось подібне

(certbot) [root@hostname ~]#

Потім піп встановити certbot

pip install certbot

Після завершення ви можете протестувати certbotкоманду під certbotvirtualenv, але це не практично, якщо ви збираєтесь використовувати cron для налаштування оновлення certbot. Тож відключіть віртуальне середовище,

(certbot) [root@hostname ~]# deactivate

Тепер запустіть команду certbot від

/root/certbot/bin/certbot

2

Це, здається, працює для мене.

Зніміть з цього моменту: 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встановлені пакети через pipтакі. Правильне виправлення передбачає вилучення пакетів pip та встановлення всього yum. Я це окреслив тут .

Для запуску certbot вам не потрібні новіші pyOpenSSL на CentOS 7!

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 - встановити epel-release yum - встановити certbot certbot -h


будь-яке вирішення?
chrismarx

Не знаю, де проблема. Я перевстановив 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.
Пафрос

0

Здається, що версія джерела epel занадто стара, ви можете видалити certbot версії yum та встановити pip.


-4

Замість certbot клієнт letsencrypt вирішив для мене проблему.

Ви можете видалити іншого клієнта

pip uninstall certbot
pip uninstall pyopenssl

А потім встановіть letsencrypt:

pip install letsencrypt
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.