Certbot: erreur d'installation sur amazon linux

Créé le 3 déc. 2015  ·  37Commentaires  ·  Source: certbot/certbot

L'Iran
./letsencrypt-auto --help --debug
installer permet de chiffrer.

Tous les packages ont été installés avec succès, mais l'erreur suivante se produit :
Création d'environnement virtuel...
Mise à jour des dépendances de letsencrypt et de l'environnement virtuel......Command "/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'), fichier , '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" a échoué avec le code d'erreur 1 dans /dev/shm/pip-build-OslHtf/cffi

Une idée? Je réalise que le support Linux d'Amazon est expérimental et je n'ai pas l'intention d'utiliser (encore) tous les outils d'automatisation, mais ce serait formidable si je pouvais au moins obtenir des certificats générés manuellement.

certbot-auto

Commentaire le plus utile

Je ne savais pas que l'installation via pip était une option. Je suivais des articles de blog sur l'utilisation de certbot sur le haricot magique et leurs scripts l'ont téléchargé comme je l'ai dit ci-dessus. Peut-être un article de blog obsolète. Test via pip maintenant :

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

Semble avoir fonctionné! Je vais ajuster mes scripts pour installer certbot en utilisant le système pip au lieu de le télécharger directement. Peut-être y a-t-il un problème avec le programme d'installation/mise à jour intégré de certbots à cet égard ?

Tous les 37 commentaires

À partir du #1458 ,

J'ai pu exécuter le client avec un letencrypt-auto modifié sur Amazon Linux 2015.03 en installant d'abord manuellement le package python27-virtualenv, puis en exécutant le chemin d'amorçage RedHat.

Je l'ai fait et cela semble fonctionner. Vous devez exécuter sudo yum install python27-virtualenv et sudo ./bootstrap/_rpm_common.sh

@barshinoff Je suis curieux de savoir si cela est lié à # 1677 (une erreur de mémoire insuffisante lors de la compilation des dépendances cffi sur d'autres distributions de la famille redhat) J'ai vérifié que ./letsencrypt-auto fonctionne sur des installations propres d'amazon linux 2015.09 .1 et 2015.03.1 sur les instances t2.micro sans rien d'autre en cours d'exécution. Sur quel type d'instance et sur quelle AMI essayez-vous cela ? Si vous l'exécutez de manière détaillée avec '-v' ./letsencrypt-auto --help --debug -v, cela pourrait fournir plus d'informations sur ce qui se passe.

Salut, merci pour le conseil.
Ce n'est pas un problème de mémoire, pour m'assurer que rien d'autre ne fonctionnait et que j'ai branché un lecteur d'échange de 40 Go.
J'utilise la distribution 2015.09 avec tous les packages mis à jour.

L'installation du package python27-virtualenv en premier, puis l'exécution du chemin d'amorçage RedHat comme suggéré par @kiwimancy m'a permis de dépasser l'erreur initiale.
L'erreur que je reçois maintenant est:
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

Même erreur ici sur le même Amazon Linux 2015.09.
Vous trouverez ci-dessous le journal détaillé, espérons que cela vous aidera à identifier le problème.

$ ./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

J'ai essayé carrément de résoudre pour pyOpenSSL en ajoutant manuellement pip install pyOpenSSL pip install cryptography avant https://github.com/letsencrypt/letsencrypt/blob/master/letsencrypt-auto#L181 , mais bloqué avec la version cffi incompatibilité et a abandonné.

J'ai aussi l'erreur :

$ ./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

La solution à partir de @kiwimancy a fonctionné :

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

Problème suivant :

$ ./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

Solution:

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

Problème suivant :

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

Solution:

sudo yum install python27-devel

Problème suivant :

Le plugin apache ne fonctionne pas ; il peut y avoir des problèmes avec votre configuration existante.
L'erreur était : 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

J'approfondirai cela plus tard.

./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 ne résout pas ce problème.

Bon alors je crois avoir trouvé une solution à ce problème.

Tout se résume à l'exécution en tant que root ou via sudo, l'utilisation de plusieurs emplacements de packages pour l'installation de pip (lib/lib64, site-packages/dist-packages, /usr vs /usr/local).

Je suis tombé sur ce problème similaire:
http://stackoverflow.com/questions/33661818/python-virtualenv-importerror-with-celery-and-billiard

Il s'avère que les versions pip et virtualenv fournies avec Amazon Linux, même dans la dernière AMI, sont obsolètes et contiennent (éventuellement) des bogues dans la manière dont lib64/dist-packages est géré pour les environnements virtuels.

La mise à jour des deux programmes via pip, puis la recréation de l'environnement virtuel semble résoudre le problème lors de l'exécution de la configuration en tant que root (sans utiliser sudo). Les solutions données dans d'autres discussions et celle-ci pour exécuter pip à partir du dossier virtualenv pour réinstaller les dépendances corrigent un symptôme, pas la cause.

Problème similaire signalé ici :
https://community.letsencrypt.org/t/letsencrypt-auto-openssl-module-not-found-ec2/4356

La solution d'eric-tucker ci-dessus a également fonctionné pour moi. Merci!

Je suis venu ici de Google, j'ai eu des problèmes similaires avec tous les modules python compilés dans virtualenv sur le dernier Amazon Linux 2015.09.1.

eric-tucker a raison, la mise à niveau manuelle de virtualenv aide ici.

J'ai trouvé que le coupable était la variable env PYTHON_INSTALL_LAYOUT=amzon qui, par défaut, n'est pas définie sur Amazon Linux - et vous ne remarquez pas le problème. Mais une fois que cela est défini, les choses ne fonctionnent pas avec la version par défaut de virtualenv, car les packages sont installés dans lib64/python2.7/dist-packages et cela n'est pas ajouté par site.py de virtualenv (du moins pas dans la version qui vient de rpm ; seul lib/python2.7/dist-packages est ajouté).

La partie délicate, du moins pour moi, était de savoir quel paquet définissait cette variable pour moi. Il s'est avéré que cela était dû à l'installation du groupe " @Development tools" par yum et plus particulièrement du package system-rpm-config . Pas si évident...

Oui! J'ai résolu!. Merci Eric Tucker !

J'ai exécuté la commande suivante.

# 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>

Mise à jour vers @skatsumata pour 2017 et 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)

Je n'avais qu'à exécuter sudo yum install python27-devel pour que cela fonctionne pour moi, merci !

@zarmstrong Merci beaucoup, ça marche. BTW Je veux configurer un cron pour le renouvellement automatique. Comment puis-je faire cela avec votre solution?

Je ne sais pas si cela fonctionnera, non testé. Mais vous pouvez l'essayer.

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

Assurez-vous de rediriger la sortie vers une sorte de journal et vérifiez que cela fonctionne.

Cela devrait être corrigé dans notre prochaine version avec #4978.

@bmw Je ne pense pas que cela ait été corrigé. Je rencontre toujours ce même problème lib/lib64 sur les environnements AWS Elastic Beanstalk avec la dernière version de certbot téléchargée comme suit :

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

Je suis déconcerté par les problèmes que nous rencontrons avec les dépendances Python et ainsi de suite.

Cependant, si vous installez certbot via pip, je pense que les choses fonctionnent. Avez-vous essayé ce @utdrmac ? Je sais que cela a résolu bon nombre de mes problèmes.

Je ne savais pas que l'installation via pip était une option. Je suivais des articles de blog sur l'utilisation de certbot sur le haricot magique et leurs scripts l'ont téléchargé comme je l'ai dit ci-dessus. Peut-être un article de blog obsolète. Test via pip maintenant :

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

Semble avoir fonctionné! Je vais ajuster mes scripts pour installer certbot en utilisant le système pip au lieu de le télécharger directement. Peut-être y a-t-il un problème avec le programme d'installation/mise à jour intégré de certbots à cet égard ?

Honnêtement, je n'ai aucune idée de la raison pour laquelle l'installation via pip n'est pas l'approche recommandée sur TOUS les systèmes d'exploitation.

La solution originale de téléchargement d'un fichier qui tente de configurer un virtualenv et échoue lamentablement la moitié du temps nécessite DIAF.

L'erreur est avec le chemin python et l'utilisation de dist-packages . Nous pouvons ajouter une configuration de chemin, par exemple, dist.pth , à /opt/eff.org/certbot/venv/lib64/python2.7/site-packages/dist.pth . Cependant, les fichiers pth ne sont traités que s'ils se trouvent dans un répertoire de site (par exemple, site-packages ) et les fichiers pth dans le chemin nouvellement désigné (c'est-à-dire, dist-packages) pas être lu. Nous créons un sitecustomize.py en /opt/eff.org/certbot/venv/lib64/python2.7/site-packages/ avec ce qui suit :

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

Le sitecustomize.py définit dist-packages comme un répertoire de site et lira avec succès le zope.interface-4.4.3-py2.7-nspkg.pth . Cela évite l'erreur $ from zope.interface import Interface ImportError .

De plus, j'ai trouvé que /usr/local/bin/certbot-auto recrée le virtualenv venv . Cela entraînera la même erreur de chemin python que nous essayons d'éviter. Je recommande d'appliquer ce qui précède et de rechercher manuellement le script d'activation dans venv ; par exemple, . /opt/eff.org/certbot/venv/bin/activate .

Je préfère cette approche car elle évite de dénigrer les packages python au niveau du système.

Non pas que cela dise quelque chose de différent de ce qui précède, mais la solution rapide pour moi sur certbot 0.21.1 était de "déplacer" efficacement les liaisons de cryptographie hazmat vers l'endroit où la version personnalisée de python de letsencrypt regarde :

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

Cela fonctionne pour moi car le sous-répertoire site-packages/ est vide pour moi. Et pour être clair, cela corrige l'erreur suivante qui apparaît sur les versions récentes de certbot sur Amazon Linux, pour moi certbot 0.21.0 et 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

La réponse que @utdrmac a écrite est ce que j'ai fini par utiliser, merci Matthew !

Mais j'ai eu l'erreur : "The requested apache plugin does not appear to be installed"
Alors j'ai fait : sudo -H pip install certbot-apache

j'ai eu la même erreur et je l'ai en quelque sorte résolu

Comme j'avais deux versions d'installation de python, python 2 et 3, je devais savoir laquelle certbot/letencrypt utilisait. celui-ci signalera une erreur lors de la tentative d'importation de cryptographie ....

sur la ligne de commande

python
from cryptography.hazmat.bindings._constant_time import lib

pas d'erreur d'importation, j'ai donc fait la même chose avec python3 et j'ai eu l'erreur No module named '_cffi_backend . J'ai donc simplement installé le module cffi avec pip3
sudo -H pip3 install cffi

sudo -H car il était nécessaire en tant que package global

a fait certbot help ensuite, puis a obtenu une erreur d'importation pour urllib3 . Installé cela avec pip3 et maintenant tout fonctionne bien.

J'espère que quelqu'un trouvera cela utile

J'ai également eu ce problème sur une instance AWS EC2, juste résolu en exécutant la solution de @utdrmac en tant que root. Il était en cours de mise à niveau vers certbot 0.22.0

Merci beaucoup @utdrmac pour la solution. J'ai essayé tellement de choses ces deux derniers jours et rien n'avait fonctionné.

J'ai rencontré ce problème aujourd'hui et j'ai en outre découvert que la solution @utdrmac ne fonctionnait pas sur AWS EC2 exécutant Amazon Linux AMI 2017.09. L'erreur que je rencontre à l'étape finale est :

$ 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

Afin de faire fonctionner certbot, j'ai été obligé d'étendre cette solution en installant un Python plus récent et en l'utilisant, ainsi :

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

Notez que j'ai séparément sudo chaque commande dans cette proposition car lorsque j'ai essayé de les regrouper toutes ensemble (comme dans sudo su - ), cette séquence d'étapes a échoué car certains anciens paramètres Python ont pollué l'environnement, provoquant certbot échouera finalement, de toute façon.

@wwkimball Pour être juste, ma solution/problème était pour Elastic Beanstalk. Il semble que j'exécute également AMI 2017.09, donc je ne sais pas pourquoi le vôtre est différent de tout le monde.

J'ai rencontré le même problème. Voici ce qui l'a résolu pour moi:

/opt/eff.org/certbot/venv/local/bin/pip installe l'interface de cryptographie

La solution de @gmegidish a résolu ce problème pour moi.

Rien que https://github.com/certbot/certbot/issues/1680#issuecomment -374046383 de @wwkimball a fonctionné pour moi.
Merci pour la solution ! :100:

FWIW, voici ce que j'ai rassemblé pour travailler sur mon instance Linux AWS :

#!/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

J'ai choisi de laisser la variable INSTALLED en place au cas où quelqu'un voudrait installer le script certbot-auto ailleurs que dans le chemin. Je l'appelle run_certbot.sh, et je l'appelle avec les arguments que je veux passer à certbot-auto :

run_certbot.sh renew --debug

@mrballcb Merci ! fonctionnent parfaitement.

sudo pip3 install cryptography
sudo pip3 install interface
travaillé pour moi

./certbot-auto --no-bootstrap

Cela a fonctionné pour moi

J'ai pu installer et exécuter certbot avec succès sur Amazon Linux 1 via la méthode pip (python36 qui inclut pip). La méthode yum a rencontré les erreurs ci-dessous qui dépassaient ma capacité à diagnostiquer.

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 Merci pour votre message, votre solution a résolu le même problème pour moi. Acclamations

J'ai eu certains des mêmes problèmes que ceux mentionnés ici, et la solution consistait simplement à déplacer l'exécutable "certbot-auto" vers /usr/local/bin/ . Cela a corrigé immédiatement chaque erreur sur mon serveur AWS.

Cette page vous a été utile?
0 / 5 - 0 notes