certbot для letsencrypt отсутствует модуль pyopenssl

Мне нужна помощь в настройке 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

Пожалуйста, помогите

Спасибо

10
задан 29 March 2017 в 11:09
10 ответов

Не пытайтесь установить certbot вручную в системах CentOS / RHEL. Это просто создает огромный беспорядок. Вместо этого установите его из EPEL.

yum install epel-release
yum install certbot
7
ответ дан 2 December 2019 в 22:08

Похоже, у меня это работает.

Возьмите обороты отсюда: 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
2
ответ дан 2 December 2019 в 22:08

У меня была такая же проблема в 0.9.3. Это было вызвано установкой плагина nginx.

Вы можете легко воспроизвести работающую установку:

docker run -it --rm centos: centos7 bash yum -y установить epel-release yum -y установить certbot certbot -h

0
ответ дан 2 December 2019 в 22:08

Я столкнулся с той же проблемой. Используя python venv, я смог заставить certbot работать с помощью pip.

Шаги: Установите virtualenv

pip install virtualenv --upgrade

Создайте virtualenv

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

Активируйте certbot virtualenv

. /root/certbot/bin/activate

Ваше приглашение может выглядеть примерно так

(certbot) [root @ hostname ~] #

Затем pip установить certbot

pip install certbot

По завершении вы можете протестировать команду certbot с помощью certbot virtualenv, но это непрактично, если вы собираетесь использовать cron для установки обновлений certbot. Итак, отключите виртуальную среду,

(certbot) [root@hostname ~]# deactivate

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

/root/certbot/bin/certbot
3
ответ дан 2 December 2019 в 22:08

Вместо certbot проблему решил за меня клиент letsencrypt.

Вы можете удалить другого клиента (ов)

pip uninstall certbot
pip uninstall pyopenssl

А затем установить letsencrypt:

pip install letsencrypt
-4
ответ дан 2 December 2019 в 22:08

Я столкнулся с этой проблемой дважды на 2 отдельные системы Centos7 за последние 2 месяца. Вот что у меня сработало:

  • yum remove pyOpenSSL [Это удалит certbot, установленный через epel]
  • yum install openssl-devel python-devel [Может, а может и не потребоваться]
  • pip install certbot
  • pip install certbot-apache

После выполнения этих шагов я смог успешно обновить свои сертификаты с помощью certbot.

4
ответ дан 2 December 2019 в 22:08

просто заставили его работать, запустив

sudo pip install pyOpenSSL==0.14.0

он удалил версию 0.13 и установил 0.14, затем certbot просто работал нормально.

0
ответ дан 2 December 2019 в 22:08

Похоже, что версия исходного кода epel слишком старая, вы можете удалить certbot версии yum и установить его с помощью pip

0
ответ дан 2 December 2019 в 22:08

Правильное исправление:

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

Спасибо cnritng frim github.

0
ответ дан 2 December 2019 в 22:08

Не смешивайте yum установленных пакетов через pip . Правильное исправление включает удаление пакетов pip и установку всего из yum . Я обрисовал это здесь .

Вам не нужен новый pyOpenSSL на CentOS 7 для запуска certbot!

pip uninstall requests
yum reinstall python-requests

pip uninstall six
yum reinstall python-six

pip uninstall urllib3
yum reinstall python-urllib3
0
ответ дан 2 December 2019 в 22:08

Теги

Похожие вопросы