Certbot: Installationsfehler auf Amazon Linux

Erstellt am 3. Dez. 2015  ·  37Kommentare  ·  Quelle: certbot/certbot

Ich rannte
./letsencrypt-auto --help --debug
Lets Encrypt installieren.

Alle Pakete erfolgreich installiert, aber dann tritt folgender Fehler auf:
Virtuelle Umgebung erstellen...
Aktualisierung der Abhängigkeiten von letsencrypt und virtuellen Umgebungen......Befehl "/root/.local/share/letsencrypt/bin/python2.7 -c "import setuptools, tokenize; file ='/dev/shm/pip-build-OslHtf/cffi/setup.py';exec(compile(getattr(tokenize, 'open', open)( file ).read().replace('rn', ' n'), file , 'exec'))" install --record /tmp/pip-lx9pFX-record/install-record.txt --single-version-externally-managed --compile --install-headers /root/ .local/share/letsencrypt/include/site/python2.7/cffi“ schlug mit Fehlercode 1 in /dev/shm/pip-build-OslHtf/cffi fehl

Irgendeine Idee? Mir ist klar, dass die Linux-Unterstützung von Amazon experimentell ist, und ich beabsichtige (noch) nicht, alle Automatisierungstools zu verwenden, aber es wäre großartig, wenn ich zumindest Zertifikate manuell generieren könnte.

certbot-auto

Hilfreichster Kommentar

Wusste nicht, dass die Installation über Pip eine Option ist. Ich habe einige Blog-Posts über die Verwendung von certbot auf Beanstalk verfolgt und ihre Skripte haben es heruntergeladen, wie ich es oben angegeben habe. Möglicherweise ist der Blog-Beitrag veraltet. Jetzt per Pip testen:

# rm -rf /opt/eff.org/*
# pip install -U certbot
# certbot renew --debug

Scheint funktioniert zu haben! Ich werde meine Skripte so anpassen, dass certbot mit System-PIP installiert wird, anstatt es direkt herunterzuladen. Vielleicht gibt es diesbezüglich ein Problem mit dem integrierten Installer/Updater von certbots?

Alle 37 Kommentare

Ab #1458 ,

Ich konnte den Client mit einem modifizierten letsencrypt-auto auf Amazon Linux 2015.03 ausführen, indem ich zuerst das Paket python27-virtualenv manuell installierte und dann den RedHat-Bootstrap-Pfad ausführte.

Das habe ich gemacht und es scheint zu funktionieren. Sie müssen sudo yum install python27-virtualenv und sudo ./bootstrap/_rpm_common.sh ausführen

@barshinoff Ich bin gespannt, ob dies überhaupt mit # 1677 zusammenhängt (ein Speicherfehler beim Kompilieren von cffi-Abhängigkeiten auf anderen Distributionen der Redhat-Familie). Ich habe überprüft, ob ./letsencrypt-auto bei Neuinstallationen von Amazon Linux 2015.09 funktioniert .1 und 2015.03.1 auf t2.micro-Instanzen, wenn nichts anderes läuft. Auf welchem ​​Instance-Typ und AMI versuchen Sie dies? Wenn Sie es ausführlich mit '-v' ./letsencrypt-auto --help --debug -v ausführen, werden möglicherweise weitere Informationen darüber ausgegeben, was vor sich geht.

Hallo, danke für den Rat.
Es ist kein Speicherproblem, um sicherzustellen, dass nichts anderes ausgeführt wird, und ein 40-GB-Auslagerungslaufwerk angeschlossen.
Ich verwende die Distribution 2015.09 mit allen aktualisierten Paketen.

Die Installation des Pakets python27-virtualenv zuerst und dann das Ausführen des RedHat-Bootstrap-Pfads, wie von @kiwimancy vorgeschlagen, hat mich über den anfänglichen Fehler hinweggebracht.
Der Fehler, den ich jetzt erhalte, ist:
Updating letsencrypt and virtual environment dependencies....... Running with virtualenv: /root/.local/share/letsencrypt/bin/letsencrypt Traceback (most recent call last): File "/root/.local/share/letsencrypt/bin/letsencrypt", line 7, in <module> from letsencrypt.cli import main File "/root/.local/share/letsencrypt/local/lib/python2.7/dist-packages/letsencrypt/cli.py", line 17, in <module> import OpenSSL ImportError: No module named OpenSSL

Derselbe Fehler hier auf demselben 2015.09 Amazon Linux.
Unten ist das ausführliche Protokoll, ich hoffe, das hilft bei der Identifizierung des Problems.

$ ./letsencrypt-auto help --debug --verbose
Bootstrapping dependencies for Amazon Linux...
yum is /usr/bin/yum
Loaded plugins: priorities, update-motd, upgrade-helper
Package python26-2.6.9-1.80.amzn1.x86_64 already installed and latest version
Package python26-devel-2.6.9-1.80.amzn1.x86_64 already installed and latest version
Package python26-virtualenv-12.0.7-1.10.amzn1.noarch already installed and latest version
Nothing to do
Loaded plugins: priorities, update-motd, upgrade-helper
Package git-2.4.3-6.40.amzn1.x86_64 already installed and latest version
Package gcc-4.8.3-3.20.amzn1.noarch already installed and latest version
Package dialog-1.1-9.20080819.1.5.amzn1.x86_64 already installed and latest version
Package augeas-libs-1.0.0-5.7.amzn1.x86_64 already installed and latest version
Package 1:openssl-devel-1.0.1k-10.87.amzn1.x86_64 already installed and latest version
Package libffi-devel-3.0.13-11.4.amzn1.x86_64 already installed and latest version
Package system-rpm-config-9.0.3-42.27.amzn1.noarch already installed and latest version
Package ca-certificates-2015.2.4-65.0.1.14.amzn1.noarch already installed and latest version
Nothing to do
Creating virtual environment...
Already using interpreter /usr/bin/python2.7
New python executable in /home/ec2-user/.local/share/letsencrypt/bin/python2.7
Also creating executable in /home/ec2-user/.local/share/letsencrypt/bin/python
Installing setuptools, pip...done.
Updating letsencrypt and virtual environment dependencies...
You are using pip version 6.0.8, however version 7.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Collecting setuptools from https://pypi.python.org/packages/3.5/s/setuptools/setuptools-18.7.1-py2.py3-none-any.whl#md5=a793e7b7ad3a91ca796f2e3bbd4ac355
  Using cached setuptools-18.7.1-py2.py3-none-any.whl
Installing collected packages: setuptools
  Found existing installation: setuptools 12.0.5
    Uninstalling setuptools-12.0.5:
      Successfully uninstalled setuptools-12.0.5

Successfully installed setuptools-18.7.1
You are using pip version 6.0.8, however version 7.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Collecting pip from https://pypi.python.org/packages/py2.py3/p/pip/pip-7.1.2-py2.py3-none-any.whl#md5=5ff9fec0be479e4e36df467556deed4d
  Using cached pip-7.1.2-py2.py3-none-any.whl
Installing collected packages: pip
  Found existing installation: pip 6.0.8
    Uninstalling pip-6.0.8:
      Successfully uninstalled pip-6.0.8

Successfully installed pip-7.1.2
Collecting letsencrypt
  Using cached letsencrypt-0.1.0-py2-none-any.whl
Collecting letsencrypt-apache
  Using cached letsencrypt_apache-0.1.0-py2-none-any.whl
Collecting ConfigArgParse from git+https://github.com/kuba/[email protected]#egg=ConfigArgParse (from -r ./py26reqs.txt (line 1))
  Cloning https://github.com/kuba/ConfigArgParse.git (to python2.6-0.9.3) to /tmp/pip-build-3Vgs0V/ConfigArgParse
Collecting acme==0.1.0 (from letsencrypt)
  Using cached acme-0.1.0-py2-none-any.whl
Requirement already up-to-date: setuptools in /home/ec2-user/.local/share/letsencrypt/lib/python2.7/dist-packages (from letsencrypt)
Collecting python2-pythondialog>=3.2.2rc1 (from letsencrypt)
  Using cached python2-pythondialog-3.3.0.tar.bz2
Collecting PyOpenSSL (from letsencrypt)
  Using cached pyOpenSSL-0.15.1-py2.py3-none-any.whl
Collecting requests (from letsencrypt)
  Using cached requests-2.8.1-py2.py3-none-any.whl
Collecting parsedatetime (from letsencrypt)
  Using cached parsedatetime-1.5-py2-none-any.whl
Collecting configobj (from letsencrypt)
  Using cached configobj-5.0.6.tar.gz
Collecting pytz (from letsencrypt)
  Using cached pytz-2015.7-py2.py3-none-any.whl
Collecting psutil>=2.1.0 (from letsencrypt)
  Using cached psutil-3.3.0.tar.gz
Collecting six (from letsencrypt)
  Using cached six-1.10.0-py2.py3-none-any.whl
Collecting cryptography>=0.7 (from letsencrypt)
  Using cached cryptography-1.1.1.tar.gz
Collecting zope.interface (from letsencrypt)
  Using cached zope.interface-4.1.3.tar.gz
Collecting zope.component (from letsencrypt)
  Using cached zope.component-4.2.2.tar.gz
Collecting mock (from letsencrypt)
  Using cached mock-1.3.0-py2.py3-none-any.whl
Collecting pyrfc3339 (from letsencrypt)
  Using cached pyRFC3339-1.0-py2.py3-none-any.whl
Collecting python-augeas (from letsencrypt-apache)
  Using cached python-augeas-0.5.0.tar.gz
Collecting pyasn1 (from acme==0.1.0->letsencrypt)
  Using cached pyasn1-0.1.9-py2.py3-none-any.whl
Collecting ndg-httpsclient (from acme==0.1.0->letsencrypt)
  Using cached ndg_httpsclient-0.4.0.tar.gz
Collecting werkzeug (from acme==0.1.0->letsencrypt)
  Using cached Werkzeug-0.11.2-py2.py3-none-any.whl
Collecting idna>=2.0 (from cryptography>=0.7->letsencrypt)
  Using cached idna-2.0-py2.py3-none-any.whl
Collecting enum34 (from cryptography>=0.7->letsencrypt)
  Using cached enum34-1.1.1.tar.gz
Collecting ipaddress (from cryptography>=0.7->letsencrypt)
  Using cached ipaddress-1.0.15-py27-none-any.whl
Collecting cffi>=1.1.0 (from cryptography>=0.7->letsencrypt)
  Using cached cffi-1.3.1.tar.gz
Collecting zope.event (from zope.component->letsencrypt)
  Using cached zope.event-4.1.0.tar.gz
Collecting funcsigs (from mock->letsencrypt)
  Using cached funcsigs-0.4-py2.py3-none-any.whl
Collecting pbr>=0.11 (from mock->letsencrypt)
  Using cached pbr-1.8.1-py2.py3-none-any.whl
Collecting pycparser (from cffi>=1.1.0->cryptography>=0.7->letsencrypt)
  Using cached pycparser-2.14.tar.gz
Installing collected packages: pytz, requests, pyasn1, idna, six, enum34, ipaddress, pycparser, cffi, cryptography, PyOpenSSL, ndg-httpsclient, werkzeug, funcsigs, pbr, mock, pyrfc3339, acme, python2-pythondialog, parsedatetime, configobj, psutil, zope.interface, zope.event, zope.component, ConfigArgParse, letsencrypt, python-augeas, letsencrypt-apache
  Running setup.py install for enum34
  Running setup.py install for pycparser
  Running setup.py install for cffi
  Running setup.py install for cryptography
  Running setup.py install for ndg-httpsclient
  Running setup.py install for python2-pythondialog
  Running setup.py install for configobj
  Running setup.py install for psutil
  Running setup.py install for zope.interface
  Running setup.py install for zope.event
  Running setup.py install for zope.component
  Running setup.py install for ConfigArgParse
  Running setup.py install for python-augeas
Successfully installed ConfigArgParse-0.9.3 PyOpenSSL acme-0.1.0 cffi configobj-5.0.6 cryptography enum34-1.1.1 funcsigs-0.4 idna-2.0 ipaddress-1.0.15 letsencrypt-0.1.0 letsencrypt-apache-0.1.0 mock-1.3.0 ndg-httpsclient-0.4.0 parsedatetime-1.5 pbr-1.8.1 psutil pyasn1-0.1.9 pycparser-2.14 pyrfc3339 python-augeas-0.5.0 python2-pythondialog-3.3.0 pytz-2015.7 requests-2.8.1 six-1.10.0 werkzeug zope.component-4.2.2 zope.event-4.1.0 zope.interface
Running with virtualenv: sudo /home/ec2-user/.local/share/letsencrypt/bin/letsencrypt help --debug --verbose
Traceback (most recent call last):
  File "/home/ec2-user/.local/share/letsencrypt/bin/letsencrypt", line 7, in <module>
    from letsencrypt.cli import main
  File "/home/ec2-user/.local/share/letsencrypt/local/lib/python2.7/dist-packages/letsencrypt/cli.py", line 17, in <module>
    import OpenSSL
ImportError: No module named OpenSSL

Ich habe unverblümt versucht, pyOpenSSL zu lösen, indem ich manuell pip install pyOpenSSL pip install cryptography vor https://github.com/letsencrypt/letsencrypt/blob/master/letsencrypt-auto#L181 hinzufügte, blieb aber bei der cffi-Version hängen Unverträglichkeit und gab auf.

Ich habe auch den Fehler:

$ ./letsencrypt-auto --apache -d www.3chirurgen.de -d 3chirurgen.de -d incentergy.de -d www.incentergy.de -d shop.incentergy.de
Updating letsencrypt and virtual environment dependencies......Command "/home/ec2-user/.local/share/letsencrypt/bin/python2.7 -c "import setuptools, tokenize;__file__='/tmp/pip-build-oV91ZI/cffi/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-GU4tNk-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/ec2-user/.local/share/letsencrypt/include/site/python2.7/cffi" failed with error code 1 in /tmp/pip-build-oV91ZI/cffi
$ uname -a
Linux ip-172-31-11-205 4.1.7-15.23.amzn1.x86_64 #1 SMP Mon Sep 14 23:20:33 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

Lösung wie von @kiwimancy hat funktioniert:

sudo yum install python27-virtualenv
sudo ./bootstrap/_rpm_common.sh
# Output nothing to do

Nächstes Problem:

$ ./letsencrypt-auto --apache -d www.3chirurgen.de -d 3chirurgen.de -d incentergy.de -d www.incentergy.de -d shop.incentergy.de
Running with virtualenv: sudo /home/ec2-user/.local/share/letsencrypt/bin/letsencrypt --apache -d www.3chirurgen.de -d 3chirurgen.de -d incentergy.de -d www.incentergy.de -d shop.incentergy.de
Traceback (most recent call last):
  File "/home/ec2-user/.local/share/letsencrypt/bin/letsencrypt", line 7, in <module>
    from letsencrypt.cli import main
  File "/home/ec2-user/.local/share/letsencrypt/local/lib/python2.7/dist-packages/letsencrypt/cli.py", line 17, in <module>
    import OpenSSL
ImportError: No module named OpenSSL

Lösung:

$ /home/ec2-user/.local/share/letsencrypt/bin/pip install pyopenssl

Nächstes Problem:

Complete output from command /home/ec2-user/.local/share/letsencrypt/bin/python2.7 -c "import setuptools, tokenize;__file__='/tmp/pip-build-5_HYBt/cffi/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-BxpscI-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/ec2-user/.local/share/letsencrypt/include/site/python2.7/cffi:
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-2.7
    creating build/lib.linux-x86_64-2.7/cffi
    copying cffi/ffiplatform.py -> build/lib.linux-x86_64-2.7/cffi
    copying cffi/api.py -> build/lib.linux-x86_64-2.7/cffi
    copying cffi/vengine_cpy.py -> build/lib.linux-x86_64-2.7/cffi
    copying cffi/recompiler.py -> build/lib.linux-x86_64-2.7/cffi
    copying cffi/vengine_gen.py -> build/lib.linux-x86_64-2.7/cffi
    copying cffi/setuptools_ext.py -> build/lib.linux-x86_64-2.7/cffi
    copying cffi/model.py -> build/lib.linux-x86_64-2.7/cffi
    copying cffi/cparser.py -> build/lib.linux-x86_64-2.7/cffi
    copying cffi/__init__.py -> build/lib.linux-x86_64-2.7/cffi
    copying cffi/gc_weakref.py -> build/lib.linux-x86_64-2.7/cffi
    copying cffi/cffi_opcode.py -> build/lib.linux-x86_64-2.7/cffi
    copying cffi/lock.py -> build/lib.linux-x86_64-2.7/cffi
    copying cffi/verifier.py -> build/lib.linux-x86_64-2.7/cffi
    copying cffi/commontypes.py -> build/lib.linux-x86_64-2.7/cffi
    copying cffi/backend_ctypes.py -> build/lib.linux-x86_64-2.7/cffi
    copying cffi/_cffi_include.h -> build/lib.linux-x86_64-2.7/cffi
    copying cffi/parse_c_type.h -> build/lib.linux-x86_64-2.7/cffi
    running build_ext
    building '_cffi_backend' extension
    creating build/temp.linux-x86_64-2.7
    creating build/temp.linux-x86_64-2.7/c
    gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -DUSE__THREAD -I/usr/include/python2.7 -c c/_cffi_backend.c -o build/temp.linux-x86_64-2.7/c/_cffi_backend.o
    c/_cffi_backend.c:2:20: fatal error: Python.h: No such file or directory
     #include <Python.h>
                        ^
    compilation terminated.
    error: command 'gcc' failed with exit status 1

    ----------------------------------------
Command "/home/ec2-user/.local/share/letsencrypt/bin/python2.7 -c "import setuptools, tokenize;__file__='/tmp/pip-build-5_HYBt/cffi/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-BxpscI-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/ec2-user/.local/share/letsencrypt/include/site/python2.7/cffi" failed with error code 1 in /tmp/pip-build-5_HYBt/cffi

Lösung:

sudo yum install python27-devel

Nächstes Problem:

Das Apache-Plugin funktioniert nicht; Möglicherweise gibt es Probleme mit Ihrer bestehenden Konfiguration.
Der Fehler war: NoInstallationError()

2015-12-04 08:18:50,797:DEBUG:letsencrypt.cli:Root logging level set at 20
2015-12-04 08:18:50,798:INFO:letsencrypt.cli:Saving debug log to /var/log/letsencrypt/letsencrypt.log
2015-12-04 08:18:50,807:DEBUG:letsencrypt.cli:letsencrypt version: 0.1.0
2015-12-04 08:18:50,807:DEBUG:letsencrypt.cli:Arguments: ['-v', '--debug', '--apache', '-d', 'www.3chirurgen.de', '-d', '3chirurgen.de', '-d', 'incentergy.de', '-d', 'www.incentergy.de', '-d', 'shop.incentergy.de']
2015-12-04 08:18:50,809:DEBUG:letsencrypt.cli:Discovered plugins: PluginsRegistry(PluginEntryPoint#apache,PluginEntryPoint#webroot,PluginEntryPoint#null,PluginEntryPoint#manual,PluginEntryPoint#standalone)
2015-12-04 08:18:50,814:DEBUG:letsencrypt.cli:Requested authenticator apache and installer apache
2015-12-04 08:18:50,820:DEBUG:letsencrypt.plugins.disco:No installation (PluginEntryPoint#apache):
Traceback (most recent call last):
  File "/home/ec2-user/.local/share/letsencrypt/local/lib/python2.7/site-packages/letsencrypt/plugins/disco.py", line 103, in prepare
    self._initialized.prepare()
  File "/home/ec2-user/.local/share/letsencrypt/local/lib/python2.7/site-packages/letsencrypt_apache/configurator.py", line 142, in prepare
    raise errors.NoInstallationError
NoInstallationError
2015-12-04 08:18:50,821:DEBUG:letsencrypt.display.ops:No candidate plugin
2015-12-04 08:18:50,821:DEBUG:letsencrypt.cli:Selected authenticator None and installer None

Ich werde später darauf eingehen.

./letsencrypt-auto -v

Updating letsencrypt and virtual environment dependencies...
Requirement already up-to-date: setuptools in /home/ec2-user/.local/share/letsencrypt/lib/python2.7/dist-packages
Requirement already up-to-date: pip in /home/ec2-user/.local/share/letsencrypt/lib/python2.7/dist-packages
Requirement already up-to-date: letsencrypt in /home/ec2-user/.local/share/letsencrypt/lib/python2.7/dist-packages
Requirement already up-to-date: letsencrypt-apache in /home/ec2-user/.local/share/letsencrypt/lib/python2.7/dist-packages
Requirement already up-to-date: zope.interface in /home/ec2-user/.local/share/letsencrypt/lib64/python2.7/site-packages (from letsencrypt)
Requirement already up-to-date: setuptools in /home/ec2-user/.local/share/letsencrypt/lib/python2.7/dist-packages (from letsencrypt)
Requirement already up-to-date: python2-pythondialog>=3.2.2rc1 in /home/ec2-user/.local/share/letsencrypt/lib/python2.7/dist-packages (from letsencrypt)
Collecting PyOpenSSL (from letsencrypt)
  Using cached pyOpenSSL-0.15.1-py2.py3-none-any.whl
Requirement already up-to-date: requests in /home/ec2-user/.local/share/letsencrypt/lib/python2.7/dist-packages (from letsencrypt)
Collecting cryptography>=0.7 (from letsencrypt)
  Using cached cryptography-1.1.2.tar.gz
Requirement already up-to-date: parsedatetime in /home/ec2-user/.local/share/letsencrypt/lib/python2.7/dist-packages (from letsencrypt)
Requirement already up-to-date: configobj in /home/ec2-user/.local/share/letsencrypt/lib/python2.7/dist-packages (from letsencrypt)
Requirement already up-to-date: pytz in /home/ec2-user/.local/share/letsencrypt/lib/python2.7/dist-packages (from letsencrypt)
Collecting psutil>=2.1.0 (from letsencrypt)
  Using cached psutil-3.3.0.tar.gz
Requirement already up-to-date: six in /home/ec2-user/.local/share/letsencrypt/lib/python2.7/dist-packages (from letsencrypt)
Requirement already up-to-date: acme==0.1.1 in /home/ec2-user/.local/share/letsencrypt/lib/python2.7/dist-packages (from letsencrypt)
Requirement already up-to-date: zope.component in /home/ec2-user/.local/share/letsencrypt/lib/python2.7/dist-packages (from letsencrypt)
Requirement already up-to-date: mock in /home/ec2-user/.local/share/letsencrypt/lib/python2.7/dist-packages (from letsencrypt)
Requirement already up-to-date: ConfigArgParse in /home/ec2-user/.local/share/letsencrypt/lib/python2.7/dist-packages (from letsencrypt)
Collecting pyrfc3339 (from letsencrypt)
  Using cached pyRFC3339-1.0-py2.py3-none-any.whl
Requirement already up-to-date: python-augeas in /home/ec2-user/.local/share/letsencrypt/lib/python2.7/dist-packages (from letsencrypt-apache)
Requirement already up-to-date: idna>=2.0 in /home/ec2-user/.local/share/letsencrypt/lib/python2.7/dist-packages (from cryptography>=0.7->letsencrypt)
Requirement already up-to-date: pyasn1>=0.1.8 in /home/ec2-user/.local/share/letsencrypt/lib/python2.7/dist-packages (from cryptography>=0.7->letsencrypt)
Requirement already up-to-date: enum34 in /home/ec2-user/.local/share/letsencrypt/lib/python2.7/dist-packages (from cryptography>=0.7->letsencrypt)
Requirement already up-to-date: ipaddress in /home/ec2-user/.local/share/letsencrypt/lib/python2.7/dist-packages (from cryptography>=0.7->letsencrypt)
Collecting cffi>=1.1.0 (from cryptography>=0.7->letsencrypt)
  Using cached cffi-1.4.2.tar.gz
Requirement already up-to-date: ndg-httpsclient in /home/ec2-user/.local/share/letsencrypt/lib/python2.7/dist-packages (from acme==0.1.1->letsencrypt)
Collecting werkzeug (from acme==0.1.1->letsencrypt)
  Using cached Werkzeug-0.11.3-py2.py3-none-any.whl
Requirement already up-to-date: zope.event in /home/ec2-user/.local/share/letsencrypt/lib/python2.7/dist-packages (from zope.component->letsencrypt)
Requirement already up-to-date: funcsigs in /home/ec2-user/.local/share/letsencrypt/lib/python2.7/dist-packages (from mock->letsencrypt)
Requirement already up-to-date: pbr>=0.11 in /home/ec2-user/.local/share/letsencrypt/lib/python2.7/dist-packages (from mock->letsencrypt)
Requirement already up-to-date: pycparser in /home/ec2-user/.local/share/letsencrypt/lib/python2.7/dist-packages (from cffi>=1.1.0->cryptography>=0.7->letsencrypt)
Installing collected packages: cffi, cryptography, PyOpenSSL, psutil, pyrfc3339, werkzeug
  Running setup.py install for cffi
  Running setup.py install for cryptography
  Running setup.py install for psutil
Successfully installed PyOpenSSL cffi cryptography psutil pyrfc3339 werkzeug
Requesting root privileges to run with virtualenv: sudo /home/ec2-user/.local/share/letsencrypt/bin/letsencrypt -v
Traceback (most recent call last):
  File "/home/ec2-user/.local/share/letsencrypt/bin/letsencrypt", line 7, in <module>
    from letsencrypt.cli import main
  File "/home/ec2-user/.local/share/letsencrypt/local/lib/python2.7/dist-packages/letsencrypt/cli.py", line 17, in <module>
    import OpenSSL
ImportError: No module named OpenSSL

pip install pyopenssl löst dieses Problem nicht.

OK, ich glaube, ich habe eine Lösung für dieses Problem gefunden.

Es läuft alles darauf hinaus, als root oder über sudo ausgeführt zu werden, die Verwendung mehrerer Paketspeicherorte für die pip-Installation (lib/lib64, site-packages/dist-packages, /usr vs. /usr/local).

Ich bin auf dieses ähnliche Problem gestoßen:
http://stackoverflow.com/questions/33661818/python-virtualenv-importerror-with-celery-and-billiard

Es stellt sich heraus, dass die pip- und virtualenv-Versionen, die mit Amazon Linux geliefert werden, selbst im neuesten AMI, veraltet sind und (möglicherweise) Fehler in der Handhabung von lib64/dist-packages für virtuelle Umgebungen aufweisen.

Das Aktualisieren beider Programme über pip und das anschließende Neuerstellen der virtuellen Umgebung scheint das Problem zu beheben, wenn das Setup als root ausgeführt wird (ohne sudo zu verwenden). Die in anderen Threads angegebenen Lösungen und diese zum Ausführen von pip aus dem virtualenv-Ordner zum Neuinstallieren von Abhängigkeiten beheben ein Symptom, nicht die Ursache.

Ähnliches Problem hier gemeldet:
https://community.letsencrypt.org/t/letsencrypt-auto-openssl-module-not-found-ec2/4356

Die obige Lösung von Eric-Tucker hat auch für mich funktioniert. Danke schön!

Kam von Google hierher, hatte ähnliche Probleme mit allen kompilierten Python-Modulen in virtualenv auf dem neuesten Amazon Linux 2015.09.1.

Eric-Tucker hat Recht, hier hilft ein manuelles Upgrade von virtualenv.

Ich fand heraus, dass der Schuldige die env-Variable PYTHON_INSTALL_LAYOUT=amzon war, die standardmäßig nicht auf Amazon Linux gesetzt ist - und dann bemerken Sie das Problem nicht. Aber sobald dies eingestellt ist, funktionieren die Dinge nicht mit der Standardversion von virtualenv, da Pakete in lib64/python2.7/dist-packages installiert werden und dies nicht von site.py von virtualenv hinzugefügt wird (zumindest nicht in der Version, aus der es stammt rpm-Paket; nur lib/python2.7/dist-packages wird hinzugefügt).

Der knifflige Teil, zumindest für mich, war herauszufinden, welches Paket diese Variable für mich definiert hat. Es stellte sich heraus, dass dies durch die Installation der Gruppe " @Development Tools" von yum und insbesondere des Pakets system-rpm-config verursacht wurde. Nicht so offensichtlich...

Ja! I löste!. Danke Eric Tucker!

Ich habe den folgenden Befehl ausgeführt.

# pip install pip --upgrade
# pip install virtualenv --upgrade
# virtualenv -p /usr/bin/python27 venv27 
# . venv27/bin/activate 
# git clone https://github.com/letsencrypt/letsencrypt
# cd letsencrypt
# ./letsencrypt-auto certonly --debug --standalone -d <domain-name>

Update auf @skatsumata für 2017 und certbot-auto:

# rm /root/.local/share/letsencrypt/ -Rf
# pip install pip --upgrade
# pip install virtualenv --upgrade
# virtualenv -p /usr/bin/python27 venv27 
# . venv27/bin/activate 
# ./certbot-auto renew --debug #(or whatever your relevant command is)

Ich musste nur sudo yum install python27-devel ausführen, damit dies für mich funktionierte, danke!

@zarmstrong Vielen Dank, das funktioniert. Übrigens möchte ich einen Cron für die automatische Verlängerung einrichten. Wie mache ich das mit deiner Lösung?

Keine Ahnung ob das geht, ungetestet. Aber du kannst es versuchen.

#!/bin/bash
date
cd /root
source venv27/bin/activate
./certbot-auto renew --debug
/etc/init.d/httpd reload

Stellen Sie sicher, dass Sie die Ausgabe in eine Art Protokoll umleiten und überprüfen, ob sie funktioniert.

Dies sollte in unserer nächsten Version mit #4978 behoben werden.

@bmw Ich glaube nicht, dass das behoben wurde. Ich habe das gleiche lib/lib64-Problem immer noch in AWS Elastic Beanstalk-Umgebungen mit der neuesten Version von certbot, die wie folgt heruntergeladen wurde:

wget https://dl.eff.org/certbot-auto; chmod a+x certbot-auto

# cat /etc/system-release
Amazon Linux AMI release 2017.09
[root@ip-172-31-10-255 venv]# /certbot/certbot-auto --debug renew
Error: couldn't get currently installed version for /opt/eff.org/certbot/venv/bin/letsencrypt:
Traceback (most recent call last):
  File "/opt/eff.org/certbot/venv/bin/letsencrypt", line 7, in <module>
    from certbot.main import main
  File "/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/certbot/main.py", line 10, in <module>
    import josepy as jose
  File "/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/josepy/__init__.py", line 41, in <module>
    from josepy.interfaces import JSONDeSerializable
  File "/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/josepy/interfaces.py", line 8, in <module>
    from josepy import errors, util
  File "/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/josepy/util.py", line 4, in <module>
    import OpenSSL
  File "/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/OpenSSL/__init__.py", line 8, in <module>
    from OpenSSL import rand, crypto, SSL
  File "/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/OpenSSL/rand.py", line 12, in <module>
    from OpenSSL._util import (
  File "/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/OpenSSL/_util.py", line 6, in <module>
    from cryptography.hazmat.bindings.openssl.binding import Binding
ImportError: No module named cryptography.hazmat.bindings.openssl.binding

Ich bin verblüfft darüber, wie viel Ärger wir mit Python-Abhängigkeiten haben und was nicht.

Wenn Sie certbot über Pip installieren, funktionieren die Dinge meiner Meinung nach. Hast du dieses @utdrmac ausprobiert ? Ich weiß, dass es viele meiner Probleme gelöst hat.

Wusste nicht, dass die Installation über Pip eine Option ist. Ich habe einige Blog-Posts über die Verwendung von certbot auf Beanstalk verfolgt und ihre Skripte haben es heruntergeladen, wie ich es oben angegeben habe. Möglicherweise ist der Blog-Beitrag veraltet. Jetzt per Pip testen:

# rm -rf /opt/eff.org/*
# pip install -U certbot
# certbot renew --debug

Scheint funktioniert zu haben! Ich werde meine Skripte so anpassen, dass certbot mit System-PIP installiert wird, anstatt es direkt herunterzuladen. Vielleicht gibt es diesbezüglich ein Problem mit dem integrierten Installer/Updater von certbots?

Ich habe ehrlich gesagt keine Ahnung, warum die Installation über Pip nicht auf ALLEN Betriebssystemen empfohlen wird.

Die ursprüngliche Lösung des Herunterladens einer Datei, die versucht, eine virtuelle Umgebung einzurichten und kläglich fehlschlägt, benötigt die Hälfte der Zeit für DIAF.

Der Fehler liegt beim Python-Pfad und der Verwendung von dist-packages . Wir können eine Pfadkonfiguration, zB dist.pth , zu /opt/eff.org/certbot/venv/lib64/python2.7/site-packages/dist.pth hinzufügen. pth -Dateien werden jedoch nur verarbeitet, wenn sie sich in einem Site-Verzeichnis befinden (z. B. site-packages ) und pth -Dateien im neu festgelegten Pfad (dh dist-packages). nicht gelesen werden. Wir erstellen eine sitecustomize.py in /opt/eff.org/certbot/venv/lib64/python2.7/site-packages/ mit dem Folgenden:

import site
site.addsitedir('/opt/eff.org/certbot/venv/lib64/python2.7/dist-packages')

Das sitecustomize.py legt dist-packages als Site-Verzeichnis fest und liest erfolgreich das zope.interface-4.4.3-py2.7-nspkg.pth . Dadurch wird der Fehler $ from zope.interface import Interface ImportError vermieden.

Außerdem habe ich festgestellt, dass /usr/local/bin/certbot-auto die virtuelle Umgebung venv neu erstellt. Dies führt zu demselben Python-Pfadfehler, den wir zu vermeiden versuchen. Ich empfehle, das Obige anzuwenden und das Aktivierungsskript manuell in venv zu beziehen; zB . /opt/eff.org/certbot/venv/bin/activate .

Ich bevorzuge diesen Ansatz, weil er das Bashing über Python-Pakete auf Systemebene vermeidet.

Nicht, dass dies etwas anderes als oben aussagt, aber die schnelle Lösung für mich auf certbot 0.21.1 bestand darin, die Kryptographie-Hazmat-Bindungen effektiv dorthin zu "verschieben", wo die benutzerdefinierte Python-Version von letsencrypt sucht:

cd /opt/eff.org/certbot/venv/lib64/python2.7
mv site-packages site-packages.sav
ln -s dist-packages/ site-packages

Dies funktioniert für mich, weil das Site-Packages/Subdir für mich leer ist. Und um es klar zu sagen, dies behebt den folgenden Fehler, der in den letzten certbot-Versionen unter Amazon Linux auftritt, für mich certbot 0.21.0 und 0.21.1:

<snip>
  File "/opt/eff.org/certbot/venv/local/lib/python2.7/site-packages/OpenSSL/_util.py", line 6, in <module>
    from cryptography.hazmat.bindings.openssl.binding import Binding
ImportError: No module named cryptography.hazmat.bindings.openssl.binding

Die Antwort, die @utdrmac geschrieben hat, habe ich letztendlich verwendet, danke Matthew!

Aber ich habe den Fehler: "The requested apache plugin does not appear to be installed"
Also tat ich: sudo -H pip install certbot-apache

Ich hatte den gleichen Fehler und ich habe es irgendwie gelöst

Da ich zwei Versionen von Python installiert hatte, Python 2 und 3, musste ich herausfinden, welche auf certbot/letencrypt verwendet wurde. dass man beim Versuch, Kryptografie zu importieren, einen Fehler meldet....

auf der Kommandozeile

python
from cryptography.hazmat.bindings._constant_time import lib

kein Importfehler, also habe ich dasselbe mit python3 gemacht und ich habe den Fehler No module named '_cffi_backend bekommen. Also habe ich einfach das cffi-Modul mit pip3 installiert
sudo -H pip3 install cffi

sudo -H weil es als globales Paket benötigt wurde

habe als nächstes certbot help gemacht und dann einen Importfehler für urllib3 bekommen. Habe das mit pip3 installiert und jetzt funktioniert alles einwandfrei.

Hoffe, jemand findet dies hilfreich

Ich hatte dieses Problem auch auf einer AWS EC2-Instance, das gerade behoben wurde, indem ich die Lösung von @utdrmac als Root ausgeführt habe. Es wurde auf certbot 0.22.0 aktualisiert

Vielen Dank @utdrmac für die Lösung. Ich habe in den letzten zwei Tagen so viele Dinge ausprobiert und nichts hatte funktioniert.

Ich bin heute auf dieses Problem gestoßen und habe außerdem festgestellt, dass die @utdrmac- Lösung auf AWS EC2 mit Amazon Linux AMI 2017.09 nicht funktioniert. Der Fehler, auf den ich im letzten Schritt stoße, ist:

$ sudo certbot renew --debug
/usr/lib64/python2.6/dist-packages/cryptography/__init__.py:26: DeprecationWarning: Python 2.6 is no longer supported by the Python core team, please upgrade your Python. The next version of cryptography will drop support for Python 2.6
  DeprecationWarning
Traceback (most recent call last):
  File "/usr/bin/certbot", line 7, in <module>
    from certbot.main import main
  File "/usr/lib/python2.6/dist-packages/certbot/main.py", line 11, in <module>
    import zope.component
  File "/usr/lib/python2.6/dist-packages/zope/component/__init__.py", line 28, in <module>
    from zope.component.globalregistry import getGlobalSiteManager
  File "/usr/lib/python2.6/dist-packages/zope/component/globalregistry.py", line 18, in <module>
    from zope.interface.registry import Components
  File "/usr/lib64/python2.6/dist-packages/zope/interface/registry.py", line 167
    filtered_state = {k: v for k, v in reduction[2].items()
                             ^
SyntaxError: invalid syntax

Um certbot zum Laufen zu bringen, war ich gezwungen, diese Lösung zu erweitern, indem ich ein neueres Python installierte und es wie folgt verwendete:

sudo rm -rf /opt/eff.org/*
sudo yum -y install python36 python36-pip python36-libs python36-tools python36-virtualenv
sudo /usr/bin/pip-3.6 install -U certbot
sudo /usr/bin/pip-3.6 install certbot-apache
sudo /usr/local/bin/certbot renew --debug

Beachten Sie, dass ich jeden Befehl in diesem Vorschlag sudo separat sudo habe, denn als ich versuchte, sie alle zusammenzufassen (wie in sudo su - ), schlug diese Schrittfolge fehl, weil einige alte Python-Einstellungen die Umgebung verschmutzten und verursachten certbot sowieso letztendlich scheitern.

@wwkimball Um fair zu sein, war meine Lösung/mein Problem für Elastic Beanstalk. Anscheinend führe ich auch AMI 2017.09 aus, also bin ich mir nicht sicher, warum sich deines von allen anderen unterscheidet.

Ich bin auf das gleiche Problem gestoßen. Folgendes hat es für mich gelöst:

/opt/eff.org/certbot/venv/local/bin/pip Installieren Sie die Kryptografieschnittstelle

Die Lösung von @gmegidish hat dieses Problem für mich behoben.

Nichts außer https://github.com/certbot/certbot/issues/1680#issuecomment -374046383 von @wwkimball hat bei mir funktioniert.
Danke für die Lösung! :100:

FWIW, das habe ich zusammengestellt, um an meiner AWS Linux-Instanz zu arbeiten:

#!/bin/bash -x

# If run in cron, add /usr/local to cron's sanitized PATH
export PATH=$PATH:/usr/local/sbin:/usr/local/bin

INSTALLED=/usr/local/bin

$INSTALLED/certbot-auto $@
if [ $? -ne 0 ]; then
  # certbot-auto used venv to install modules, but something
  # about the way it put things together put pieces in a subdir
  # that python doesn't look in by default on AWS Linux. Fix it.
  BASEDIR="/opt/eff.org/certbot/venv/lib64/python2.7"
  cat << "  EOM"
  1. Getting rid of empty $BASEDIR/site-packages.
  2. Create symlink "site-packages" to "dist-packages/".

  EOM

  if [ -d $BASEDIR ]; then
    cd $BASEDIR
    rm -rf site-packages
    ln -s dist-packages/ site-packages
  else
    echo "ERROR: $BASEDIR doesn't exist, python version changed?"
  fi

  $INSTALLED/certbot-auto $@
fi

Ich habe mich dafür entschieden, die Variable INSTALLED an Ort und Stelle zu lassen, falls jemand das Skript certbot-auto an einer anderen Stelle als im Pfad installieren möchte. Ich nenne es run_certbot.sh und ich nenne es mit den Argumenten, die ich an certbot-auto übergeben möchte:

run_certbot.sh renew --debug

@mrballcb Danke! funktionieren perfekt.

sudo pip3 install cryptography
sudo pip3 install interface
hat bei mir funktioniert

./certbot-auto --no-bootstrap

Das hat bei mir funktioniert

Ich konnte certbot erfolgreich auf Amazon Linux 1 über die Pip-Methode (python36, die Pip enthält) installieren und ausführen. Bei der Yum-Methode sind die folgenden Fehler aufgetreten, die über meiner Diagnosefähigkeit lagen.

Complete!
Creating virtual environment...
Traceback (most recent call last):
  File "<stdin>", line 27, in <module>
  File "<stdin>", line 19, in create_venv
  File "/usr/lib64/python2.7/subprocess.py", line 185, in check_call
    retcode = call(*popenargs, **kwargs)
  File "/usr/lib64/python2.7/subprocess.py", line 172, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/usr/lib64/python2.7/subprocess.py", line 394, in __init__
    errread, errwrite)
  File "/usr/lib64/python2.7/subprocess.py", line 1047, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

@ micharu123 Danke für deinen Beitrag, deine Lösung hat das gleiche Problem für mich behoben. Beifall

Ich hatte einige der gleichen Probleme, die hier erwähnt werden, und die Lösung bestand einfach darin, die ausführbare Datei „certbot-auto“ nach /usr/local/bin/ zu verschieben. Dadurch wurde jeder einzelne Fehler sofort auf meinem AWS-Server behoben.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen