Назад | Перейти на главную страницу

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

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

Спасибо

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

yum install epel-release
yum install certbot

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

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

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

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

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

pip install virtualenv --upgrade

Создать виртуальный

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

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

. /root/certbot/bin/activate

Ваше приглашение может превратиться в что-то вроде этого

(certbot) [root@hostname ~]#

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

pip install certbot

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

(certbot) [root@hostname ~]# deactivate

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

/root/certbot/bin/certbot

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

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

Спасибо cnritng от github.

Мне кажется, это работает.

Возьмите обороты отсюда: 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

Не смешивать 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.9.3. Это было вызвано установкой плагина nginx.

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

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

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

sudo pip install pyOpenSSL==0.14.0

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

Кажется, что версия источника epel слишком старая, вы можете удалить certbot версии yum и установить его

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

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

pip uninstall certbot
pip uninstall pyopenssl

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

pip install letsencrypt