certbot para letsencrypt módulo pyopenssl ausente

10

Preciso de ajuda para configurar o CertBot for LetsEncrypt

Estou executando no CentOS 7 com Python 2.7

Quando executo o certbot, recebo o seguinte erro:

[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: [email protected]
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: [email protected]
License: Apache License, Version 2.0
Location: /usr/lib/python2.7/site-packages
Requires: six, cryptography

Por favor ajude

Obrigado

cs378
fonte
Corrija sua postagem para que fique legível, os rastreamentos estão todos bagunçados ... Além disso, inclua como você instalou o certbot, o que você fez para tentar fazê-lo funcionar até agora e qualquer informação que possa nos ajudar a entender por que você está recebendo este erro.
Ginnungagap
Por favor, veja o meu comentário para a solução usando virtualenv
Danie

Respostas:

7

Não tente instalar o certbot manualmente nos sistemas CentOS / RHEL. Isso apenas faz uma bagunça enorme. Em vez disso, instale-o a partir do EPEL.

yum install epel-release
yum install certbot
Michael Hampton
fonte
1
Eu instalei a partir do EPEL, e ainda estou recebendo o mesmo problema
chrismarx
7
Executo o pacote certbot EPEL e resolvi esse problema. Outra coisa no meu sistema atualizou a biblioteca 'orders' para a versão mais recente (2.13.0 até o momento em que este documento foi escrito), mas o RPM que é instalado como uma dependência do certbot é 2.6.0. Compare versões para pip list 2>/dev/null | grep requestse rpm -q python-requests --queryformat '%{VERSION}\n'. Se eles são diferentes, tente pip install --upgrade --force-reinstall 'requests==2.6.0'.
111317 Alan Ivey
4

Eu experimentei esse mesmo problema duas vezes em 2 sistemas Centos7 separados nos últimos 2 meses. Isto é o que funcionou para mim:

  • yum remove pyOpenSSL [Isso removerá o certbot instalado via epel]
  • yum install openssl-devel python-devel [pode ou não ser realmente necessário]
  • pip install certbot
  • pip instala certbot-apache

Após concluir essas etapas, consegui renovar meus certificados com sucesso com o certbot.

bluemorpho
fonte
1
Isso funcionou. O urllib3 fica confuso entre o pip instalado e as versões yum instaladas do pyOpenSSL. A remoção dos pacotes yum e a instalação com o pip parecem corrigir isso.
scoota269
Depois de aplicar essas três primeiros comandos, eu recebo o erro followin: UnknownExtra: requests 2.6.0 has no such extra feature 'security'quando eu executar$ certbot certonly ...
Patros
3

Estou enfrentando o mesmo problema. Usando python venv, consegui que o certbot funcionasse usando pip.

Etapas: Instale o virtualenv

pip install virtualenv --upgrade

Crie um virtualenv

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

Ativar o certbotvirtualenv

. /root/certbot/bin/activate

Seu prompt pode se transformar em algo assim

(certbot) [root@hostname ~]#

Em seguida, pip instala o certbot

pip install certbot

Depois de concluído, você pode testar o certbotcomando sob o certbotvirtualenv, mas isso não é prático se você usar o cron para configurar renovações do certbot. Então, desative o ambiente virtual,

(certbot) [root@hostname ~]# deactivate

Agora execute o comando certbot em

/root/certbot/bin/certbot
Danie
fonte
2

Isso parece estar funcionando para mim.

Pegue um rpm a partir daqui: 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
user353255
fonte
"ImportError: módulo 'pyOpenSSL' sem funcionalidade necessária. Tente atualizar para a v0.14 ou mais recente." Eu encontrei esse problema e finalmente resolvi instalando 'pyOpenSSL-0.15.1-1.el7.noarch.rpm'
kai.fantasy 3/17/17
2

A correção correta é:

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

Graças ao cnritng frim github.

Tim Duncklee
fonte
Fiz a mágica imediatamente.
j4hangir 5/01
1

Não misture yumpacotes instalados por meio de pacotes pip. A correção adequada envolve a remoção de pacotes pip e a instalação de tudo yum. Eu descrevi aqui .

Você não precisa de pyOpenSSL mais recente no CentOS 7 para executar o certbot!

pip uninstall requests
yum reinstall python-requests

pip uninstall six
yum reinstall python-six

pip uninstall urllib3
yum reinstall python-urllib3
Danila Vershinin
fonte
0

Eu tive o mesmo problema na 0.9.3. Isso foi causado pela instalação do plugin nginx.

Você pode facilmente reproduzir uma instalação funcional:

docker run -it --rm centos: centos7 bash yum -y instala o epel-release yum -y instala certbot certbot -h

rhoerbe
fonte
alguma solução alternativa?
Chrismarx
Não sei onde estava o problema. Eu reinstalei o CentOS e ele funcionou agora :(
cs378 20/17/17
0

apenas fez funcionar executando

sudo pip install pyOpenSSL==0.14.0

removeu a versão 0.13 e instalou a 0.14, depois o certbot funcionou normalmente.

ignora
fonte
Eu recebo o seguinte: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

Parece que a versão da fonte epel é muito antiga, você pode remover o certbot da versão yum e instalar o pip

yingjia
fonte
-4

Em vez do certbot, o cliente letsencrypt resolveu para mim o problema.

Você pode remover os outros clientes

pip uninstall certbot
pip uninstall pyopenssl

E instale letsencrypt:

pip install letsencrypt
Alexey K
fonte