certbot für letsencrypt fehlendes pyopenssl modul


10

Ich benötige Hilfe beim Einrichten des CertBot für LetsEncrypt

Ich verwende CentOS 7 mit Python 2.7

Wenn ich certbot ausführe, wird folgende Fehlermeldung angezeigt:

[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

Bitte helfen sie aus

Vielen Dank


Bitte korrigieren Sie Ihren Beitrag so, dass er lesbar ist, die Rückverfolgungen sind alle durcheinander ... Geben Sie außerdem an, wie Sie certbot installiert haben, was Sie getan haben, um ihn zum Laufen zu bringen, und alle Informationen, die uns tatsächlich helfen könnten, zu verstehen, warum Sie erhalten diesen Fehler.
Ginnungagap

Bitte lesen Sie meinen Kommentar für die Lösung mit virtualenv
Danie

Antworten:


7

Versuchen Sie nicht, certbot manuell auf CentOS / RHEL-Systemen zu installieren. Es macht nur ein großes Durcheinander. Installieren Sie es stattdessen von EPEL.

yum install epel-release
yum install certbot

1
Ich habe aus dem Epel installiert und bekomme immer noch das gleiche Problem
Chrismarx

7
Ich habe das EPEL-Certbot-Paket ausgeführt und dieses Problem behoben. Etwas anderes auf meinem System hat die 'Anforderungs'-Bibliothek auf den neuesten Stand gebracht (2.13.0 zum Zeitpunkt dieses Schreibens), aber das RPM, das als Abhängigkeit für certbot installiert wird, ist 2.6.0. Vergleiche Versionen für pip list 2>/dev/null | grep requestsund rpm -q python-requests --queryformat '%{VERSION}\n'. Wenn sie unterschiedlich sind, versuchen Sie es pip install --upgrade --force-reinstall 'requests==2.6.0'.
Alan Ivey

4

Ich habe dasselbe Problem in den letzten 2 Monaten zweimal auf zwei separaten Centos7-Systemen festgestellt. Das hat bei mir funktioniert:

  • yum remove pyOpenSSL [Hiermit wird der über epel installierte Certbot entfernt.]
  • yum install openssl-devel python-devel [Kann oder kann nicht wirklich notwendig sein]
  • pip install certbot
  • pip installiere certbot-apache

Nach Abschluss dieser Schritte konnte ich meine Zertifikate mit certbot erfolgreich erneuern.


1
Das hat funktioniert. urllib3 wird zwischen der installierten und der yum installierten Version von pyOpenSSL verwechselt. Das Entfernen der yum-Pakete und das Installieren mit pip scheint dies zu korrigieren.
Scoota269

Nachdem ich diese ersten drei Befehle UnknownExtra: requests 2.6.0 has no such extra feature 'security'$ certbot certonly ...
angewendet

3

Ich habe das gleiche Problem. Mit Python Venv konnte ich Certbot mit Pip zum Laufen bringen.

Schritte: Installieren Sie virtualenv

pip install virtualenv --upgrade

Erstellen Sie eine virtuelle Umgebung

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

Aktivieren Sie die certbotvirtuelle Umgebung

. /root/certbot/bin/activate

Ihre Eingabeaufforderung könnte sich in so etwas verwandeln

(certbot) [root@hostname ~]#

Dann pip install certbot

pip install certbot

Sobald certbotder certbotVorgang abgeschlossen ist, können Sie den Befehl unter virtualenv testen. Dies ist jedoch nicht praktikabel, wenn Sie cron zum Einrichten von Certbot-Erneuerungen verwenden möchten. Deaktivieren Sie also die virtuelle Umgebung.

(certbot) [root@hostname ~]# deactivate

Führen Sie nun den Befehl certbot aus

/root/certbot/bin/certbot

2

Das scheint für mich zu funktionieren.

Holen Sie sich hier eine Drehzahl: 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: Dem 'pyOpenSSL'-Modul fehlen die erforderlichen Funktionen. Versuchen Sie, ein Upgrade auf Version 0.14 oder neuer durchzuführen." Ich bin auf dieses Problem gestoßen und habe es schließlich durch die Installation von 'pyOpenSSL-0.15.1-1.el7.noarch.rpm'
kai.fantasy

2

Die richtige Lösung ist:

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

Dank cnritng frim github.


Hat die Magie sofort gemacht.
j4hangir

0

Ich hatte das gleiche Problem in 0.9.3. Es wurde durch die Installation des Nginx-Plugins verursacht.

Sie können eine funktionierende Installation problemlos reproduzieren:

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


eine Problemumgehung?
Chrismarx

Ich weiß nicht, wo das Problem war. Ich habe das CentOS neu installiert und es hat jetzt funktioniert :(
cs378

0

Ich habe es einfach zum Laufen gebracht

sudo pip install pyOpenSSL==0.14.0

es entfernte die 0.13 Version und installierte die 0.14, dann funktionierte certbot einfach normal.


Ich erhalte die folgende: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

Es scheint, dass die Version der Epel-Quelle zu alt ist. Sie können den Certbot der Yum-Version entfernen und per Pip installieren


0

Mischen Sie yuminstallierte Pakete nicht über pipsolche. Die richtige Lösung besteht darin, Pip-Pakete zu entfernen und alles von zu installieren yum. Ich habe es hier skizziert .

Sie benötigen kein neueres pyOpenSSL unter CentOS 7, um certbot auszuführen!

pip uninstall requests
yum reinstall python-requests

pip uninstall six
yum reinstall python-six

pip uninstall urllib3
yum reinstall python-urllib3

-4

Stattdessen hat certbot der letsencrypt Client für mich das Problem gelöst.

Sie können die anderen Clients entfernen.

pip uninstall certbot
pip uninstall pyopenssl

Und dann installiere letsencrypt:

pip install letsencrypt
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.