certbot for letsencrypt mancante modulo pyopenssl


10

Ho bisogno di aiuto per configurare CertBot per LetsEncrypt

Sono in esecuzione su CentOS 7 con Python 2.7

Quando eseguo certbot ottengo il seguente errore:

[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

Per favore, dai una mano

Grazie


Correggi i tuoi post in modo che siano leggibili, i traceback siano tutti incasinati ... Inoltre, includi il modo in cui hai installato certbot, cosa hai fatto per provare a farlo funzionare finora e qualsiasi informazione che potrebbe effettivamente aiutarci a capire perché stai ricevendo questo errore.
Ginnungagap,

Si prega di vedere il mio commento per la soluzione utilizzando virtualenv
Danie

Risposte:


7

Non tentare di installare certbot manualmente sui sistemi CentOS / RHEL. Fa solo un casino enorme. Invece, installalo da EPEL.

yum install epel-release
yum install certbot

1
Ho installato da Epel e sto ancora
riscontrando

7
Ho eseguito il pacchetto EPEL certbot e risolto questo problema. Qualcos'altro sul mio sistema aveva aggiornato la libreria "request" all'ultima (2.13.0 al momento della stesura di questo documento), ma l'RPM installato come dipendenza per certbot è 2.6.0. Confronta le versioni per pip list 2>/dev/null | grep requestse rpm -q python-requests --queryformat '%{VERSION}\n'. Se sono diversi, prova pip install --upgrade --force-reinstall 'requests==2.6.0'.
Alan Ivey,

4

Ho riscontrato questo stesso problema due volte su 2 sistemi Centos7 separati negli ultimi 2 mesi. Questo è ciò che ha funzionato per me:

  • yum remove pyOpenSSL [Questo rimuoverà certbot installato tramite epel]
  • yum install openssl-devel python-devel [Potrebbe non essere effettivamente necessario]
  • pip installa certbot
  • pip installa certbot-apache

Dopo aver completato questi passaggi sono stato in grado di rinnovare con successo i miei certificati con certbot.


1
Questo ha funzionato. urllib3 viene confuso tra il pip installato e le versioni yum installate di pyOpenSSL. Rimozione dei pacchetti yum e installazione con pip sembra correggere questo.
scoota269,

Dopo aver applicato questi primi tre comandi, ottengo il seguente errore: UnknownExtra: requests 2.6.0 has no such extra feature 'security'quando $ certbot certonly ...
eseguo

3

Sto riscontrando lo stesso problema. Usando python venv sono stato in grado di far funzionare certbot usando pip.

Passaggi: installa virtualenv

pip install virtualenv --upgrade

Crea un virtualenv

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

Attiva certbotvirtualenv

. /root/certbot/bin/activate

Il tuo prompt potrebbe trasformarsi in qualcosa del genere

(certbot) [root@hostname ~]#

Quindi installare pip certbot

pip install certbot

Una volta completato puoi testare il certbotcomando sotto certbotvirtualenv, ma questo non è pratico se intendi utilizzare cron per impostare i rinnovi certbot. Quindi disattiva l'ambiente virtuale,

(certbot) [root@hostname ~]# deactivate

Ora esegui il comando certbot da

/root/certbot/bin/certbot

2

Questo sembra funzionare per me.

Prendi un numero di giri da qui: 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: mancava la funzionalità richiesta al modulo 'pyOpenSSL'. Prova ad aggiornare a v0.14 o più recente." Ho riscontrato questo problema e finalmente risolto installando 'pyOpenSSL-0.15.1-1.el7.noarch.rpm'
kai.fantasy

2

La correzione corretta è:

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

Grazie a cnritng frim github.


Ha fatto subito la magia.
J4hangir,

1

Non mescolare i yumpacchetti installati tramite pipquelli. La correzione corretta prevede la rimozione di pacchetti pip e l'installazione di tutto yum. L'ho delineato qui .

Non è necessario il nuovo pyOpenSSL su CentOS 7 per eseguire certbot!

pip uninstall requests
yum reinstall python-requests

pip uninstall six
yum reinstall python-six

pip uninstall urllib3
yum reinstall python-urllib3

0

Ho avuto lo stesso problema in 0.9.3. È stato causato dall'installazione del plugin nginx.

Puoi facilmente riprodurre un'installazione funzionante:

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


qualche soluzione?
Chrismarx,

Non so dove fosse il problema. Ho reinstallato CentOS e funzionava ora :(
cs378

0

appena fatto funzionare eseguendo

sudo pip install pyOpenSSL==0.14.0

rimosse la versione 0.13 e installò la 0.14, quindi certbot funzionava normalmente.


Ottengo quanto segue: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

Sembra che la versione del sorgente epel sia troppo vecchia, puoi rimuovere il certbot della versione yum e installarlo


-4

Invece certbot, il client letsencrypt ha risolto per me il problema.

Puoi rimuovere gli altri client

pip uninstall certbot
pip uninstall pyopenssl

E quindi installa letsencrypt:

pip install letsencrypt
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.