Мне нужна помощь в настройке 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 месяца. Вот что сработало для меня:
После выполнения этих шагов я смог успешно обновить свои сертификаты с помощью 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