Certbot: kesalahan instalasi di amazon linux

Dibuat pada 3 Des 2015  ·  37Komentar  ·  Sumber: certbot/certbot

aku berlari
./letsencrypt-auto --help --debug
untuk menginstal memungkinkan mengenkripsi.

Semua paket berhasil diinstal tetapi kemudian terjadi kesalahan berikut:
Membuat lingkungan virtual...
Memperbarui letsencrypt dan dependensi lingkungan virtual......Perintah "/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" gagal dengan kode kesalahan 1 di /dev/shm/pip-build-OslHtf/cffi

Ada ide? Saya menyadari dukungan amazon linux bersifat eksperimental dan saya tidak bermaksud menggunakan semua alat otomatisasi (belum) tetapi akan lebih bagus jika saya setidaknya bisa mendapatkan sertifikat yang dihasilkan secara manual.

certbot-auto

Komentar yang paling membantu

Tidak tahu menginstal melalui pip adalah sebuah pilihan. Saya mengikuti beberapa posting blog tentang menggunakan certbot di pohon kacang dan skrip mereka mengunduhnya seperti yang saya taruh di atas. Mungkin posting blog sudah ketinggalan zaman. Pengujian melalui pip sekarang:

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

Ternyata berhasil! Saya akan menyesuaikan skrip saya untuk menginstal certbot menggunakan pip sistem alih-alih mengunduhnya secara langsung. Mungkin ada masalah dengan penginstal/pembaru bawaan certbots dalam hal ini?

Semua 37 komentar

Dari #1458 ,

Saya dapat menjalankan klien dengan letsencrypt-auto yang dimodifikasi di Amazon Linux 2015.03 dengan menginstal paket python27-virtualenv secara manual terlebih dahulu, kemudian menjalankan jalur bootstrap RedHat.

Saya melakukan itu dan sepertinya berhasil. Anda perlu menjalankan Sudo yum install python27-virtualenv dan Sudo ./bootstrap/_rpm_common.sh

@barshinoff Saya ingin tahu apakah ini sama sekali terkait dengan #1677 (kesalahan memori saat mengkompilasi dependensi cffi pada distro keluarga redhat lainnya) Saya telah memeriksa bahwa ./letsencrypt-auto berfungsi pada instalasi bersih amazon linux 2015.09 .1 dan 2015.03.1 pada instans t2.micro tanpa yang lain berjalan. Jenis instans dan AMI apa yang Anda coba ini? Jika Anda menjalankannya secara verbose dengan '-v' ./letsencrypt-auto --help --debug -v itu mungkin memberikan lebih banyak informasi tentang apa yang terjadi.

Hai, terima kasih atas sarannya.
Ini bukan masalah memori, untuk memastikan saya memastikan tidak ada yang berjalan dan menghubungkan drive swap 40gb.
Saya menjalankan distro 2015.09 dengan semua paket diperbarui.

Menginstal paket python27-virtualenv terlebih dahulu, kemudian menjalankan jalur bootstrap RedHat seperti yang disarankan oleh @kiwimancy membuat saya melewati kesalahan awal.
Kesalahan yang saya terima sekarang adalah:
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

Kesalahan yang sama di sini pada 2015.09 Amazon Linux yang sama.
Di bawah ini adalah log verbose, semoga ini membantu mengidentifikasi masalah.

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

Saya mencoba secara blak-blakan untuk menyelesaikan pyOpenSSL dengan menambahkan pip install pyOpenSSL pip install cryptography secara manual sebelum https://github.com/letsencrypt/letsencrypt/blob/master/letsencrypt-auto#L181 , tetapi macet dengan versi cffi ketidakcocokan dan menyerah.

Saya memiliki kesalahan juga:

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

Solusi dari @kiwimancy berhasil:

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

Masalah Berikutnya:

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

Larutan:

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

Masalah berikutnya:

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

Larutan:

sudo yum install python27-devel

Masalah berikutnya:

Plugin apache tidak berfungsi; mungkin ada masalah dengan konfigurasi Anda yang ada.
Kesalahannya adalah: 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

Saya akan menggali ini nanti.

./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 tidak menyelesaikan ini.

OK jadi saya yakin saya menemukan solusi untuk masalah ini.

Semuanya bermuara pada berjalan sebagai root atau berjalan melalui Sudo, penggunaan beberapa lokasi paket untuk instalasi pip (lib/lib64, paket-situs/dist-paket, /usr vs /usr/local).

Saya menemukan masalah serupa ini:
http://stackoverflow.com/questions/33661818/python-virtualenv-importerror-with-celery-and-billiard

Ternyata versi pip dan virtualenv yang dikirimkan bersama Amazon Linux, bahkan dalam AMI terbaru, sudah ketinggalan zaman dan (mungkin) memiliki bug dalam cara lib64/dist-packages ditangani untuk lingkungan virtual.

Memperbarui kedua program melalui pip dan kemudian membuat ulang lingkungan virtual tampaknya memperbaiki masalah saat menjalankan pengaturan sebagai root (tidak menggunakan Sudo). Solusi yang diberikan di utas lain dan yang ini untuk menjalankan pip dari folder virtualenv untuk menginstal ulang dependensi memperbaiki gejala, bukan penyebabnya.

Masalah serupa dilaporkan di sini:
https://community.letsencrypt.org/t/letsencrypt-auto-openssl-module-not-found-ec2/4356

solusi eric-tucker di atas juga berfungsi untuk saya. Terima kasih!

Datang ke sini dari Google, memiliki masalah serupa dengan semua modul python yang dikompilasi di virtualenv pada Amazon Linux 2015.09.1 ​​terbaru.

eric-tucker benar, memutakhirkan virtualenv secara manual membantu di sini.

Saya menemukan bahwa pelakunya adalah variabel env PYTHON_INSTALL_LAYOUT=amzon yang secara default tidak disetel di Amazon Linux - dan kemudian Anda tidak melihat masalahnya. Tetapi setelah ini disetel, semuanya tidak berfungsi dengan versi default virtualenv, karena paket diinstal ke lib64/python2.7/dist-packages dan ini tidak ditambahkan oleh site.py virtualenv (setidaknya tidak dalam versi yang berasal dari paket rpm; hanya lib/python2.7/dist-packages yang ditambahkan).

Bagian yang sulit, setidaknya bagi saya, adalah mencari tahu paket mana yang mendefinisikan variabel ini untuk saya. Ternyata itu disebabkan oleh menginstal grup " @Development tools" oleh yum dan khususnya paket system-rpm-config . Tidak begitu jelas...

Ya! Saya memecahkan!. Terima kasih eric-tucker!

Saya menjalankan perintah berikut.

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

Perbarui ke @skatsumata untuk 2017 dan 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)

Saya hanya perlu menjalankan sudo yum install python27-devel agar ini berfungsi untuk saya, terima kasih!

@zarmstrong Terima kasih banyak, itu berhasil. BTW Saya ingin mengatur cron untuk perpanjangan otomatis. Bagaimana saya melakukannya dengan solusi Anda?

Tidak yakin apakah ini akan berhasil, belum diuji. Tapi Anda bisa mencobanya.

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

Pastikan untuk mengarahkan output ke semacam log dan memverifikasi itu berfungsi.

Ini harus diperbaiki dalam rilis kami berikutnya dengan #4978.

@bmw Saya tidak percaya ini telah diperbaiki. Saya mengalami masalah lib/lib64 yang sama ini masih di lingkungan AWS Elastic Beanstalk dengan versi terbaru dari certbot yang diunduh sebagai berikut:

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

Saya bingung dengan seberapa banyak masalah yang kami alami dengan dependensi Python dan apa yang tidak.

Padahal, jika Anda menginstal certbot melalui pip, saya pikir semuanya berfungsi. Sudahkah Anda mencoba @utdrmac ini? Saya tahu itu memecahkan banyak masalah saya.

Tidak tahu menginstal melalui pip adalah sebuah pilihan. Saya mengikuti beberapa posting blog tentang menggunakan certbot di pohon kacang dan skrip mereka mengunduhnya seperti yang saya taruh di atas. Mungkin posting blog sudah ketinggalan zaman. Pengujian melalui pip sekarang:

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

Ternyata berhasil! Saya akan menyesuaikan skrip saya untuk menginstal certbot menggunakan pip sistem alih-alih mengunduhnya secara langsung. Mungkin ada masalah dengan penginstal/pembaru bawaan certbots dalam hal ini?

Sejujurnya saya tidak tahu mengapa instalasi melalui pip bukanlah pendekatan yang disarankan pada SEMUA sistem operasi.

Solusi asli mengunduh file yang mencoba mengatur virtualenv dan gagal total separuh waktu yang dibutuhkan untuk DIAF.

Kesalahannya ada pada jalur python dan penggunaan dist-packages . Kita dapat menambahkan konfigurasi jalur, misalnya dist.pth , ke /opt/eff.org/certbot/venv/lib64/python2.7/site-packages/dist.pth . Namun, file pth hanya diproses jika mereka berada di direktori situs (misalnya, site-packages ) dan file pth di jalur yang baru ditunjuk (yaitu, dist-packages) akan tidak dibaca. Kami membuat sitecustomize.py di /opt/eff.org/certbot/venv/lib64/python2.7/site-packages/ dengan yang berikut:

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

sitecustomize.py menetapkan dist-packages sebagai direktori situs dan akan berhasil membaca zope.interface-4.4.3-py2.7-nspkg.pth . Ini menghindari kesalahan $ from zope.interface import Interface ImportError .

Selanjutnya, saya menemukan bahwa /usr/local/bin/certbot-auto membuat ulang virtualenv venv . Ini akan menghasilkan kesalahan jalur python yang sama yang kami coba hindari. Saya sarankan untuk menerapkan di atas dan secara manual mencari sumber skrip aktivasi di venv ; misalnya . /opt/eff.org/certbot/venv/bin/activate .

Saya lebih suka pendekatan ini karena menghindari bashing atas paket python tingkat sistem.

Bukannya ini mengatakan sesuatu yang berbeda dari di atas, tetapi perbaikan cepat untuk saya di certbot 0.21.1 adalah untuk secara efektif "memindahkan" binding hazmat kriptografi ke tempat versi python kustom letsencrypt mencari:

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

Ini berfungsi untuk saya karena paket situs/subdir kosong untuk saya. Dan untuk lebih jelasnya, ini mengatasi kesalahan berikut yang muncul pada versi certbot terbaru di Amazon Linux, untuk saya certbot 0.21.0 dan 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

Jawaban yang ditulis @utdrmac adalah yang akhirnya saya gunakan, Terima kasih Matthew!

Tapi saya mendapatkan kesalahan: "The requested apache plugin does not appear to be installed"
Jadi saya lakukan: sudo -H pip install certbot-apache

saya memiliki kesalahan yang sama dan saya entah bagaimana menyelesaikannya

Karena saya memiliki dua versi instalasi python, python 2 dan 3, saya harus mencari tahu yang mana di certbot/letencrypt yang digunakan. yang itu akan melaporkan kesalahan saat mencoba mengimpor kriptografi....

di baris perintah

python
from cryptography.hazmat.bindings._constant_time import lib

tidak ada kesalahan impor, jadi saya melakukan hal yang sama dengan python3 dan saya mendapatkan kesalahan No module named '_cffi_backend . Jadi saya menginstal modul cffi dengan pip3
sudo -H pip3 install cffi

sudo -H karena dibutuhkan sebagai paket global

lakukan certbot help next kemudian mendapat kesalahan impor untuk urllib3 . Menginstalnya dengan pip3 dan sekarang semuanya berfungsi dengan baik.

Semoga seseorang menemukan ini bermanfaat

Saya juga mengalami masalah ini pada instance AWS EC2, baru saja diperbaiki dengan menjalankan solusi @utdrmac sebagai root. Itu ditingkatkan ke certbot 0.22.0

Terima kasih banyak @utdrmac atas solusinya. Saya telah mencoba banyak hal selama dua hari terakhir dan tidak ada yang berhasil.

Saya mengalami masalah ini hari ini dan selanjutnya menemukan bahwa solusi @utdrmac tidak berfungsi pada AWS EC2 yang menjalankan Amazon Linux AMI 2017.09. Kesalahan yang saya temui pada langkah terakhir adalah:

$ 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

Untuk menjalankan certbot, saya terpaksa memperluas solusi ini dengan menginstal Python yang lebih baru dan menggunakannya, dengan demikian:

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

Perhatikan bahwa saya memisahkan sudo setiap perintah dalam proposal ini karena ketika saya mencoba menggabungkan semuanya (seperti pada sudo su - ), urutan langkah ini gagal karena beberapa pengaturan Python lama mencemari lingkungan, menyebabkan certbot akhirnya gagal.

@wwkimball Agar adil, solusi/masalah saya adalah untuk Elastic Beanstalk. Sepertinya saya juga menjalankan AMI 2017.09 jadi tidak yakin mengapa milik Anda berbeda dari milik orang lain.

Saya mengalami masalah yang sama. Inilah yang menyelesaikannya untuk saya:

/opt/eff.org/certbot/venv/local/bin/pip menginstal antarmuka kriptografi

Solusi @gmegidish memperbaiki masalah ini untuk saya.

Tidak ada apa-apa selain https://github.com/certbot/certbot/issues/1680#issuecomment -374046383 oleh @wwkimball bekerja untuk saya.
Terima kasih atas solusinya! :100:

FWIW, inilah yang saya kumpulkan untuk bekerja pada instance AWS Linux saya:

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

Saya memilih untuk membiarkan variabel INSTALLED di tempatnya jika seseorang ingin menginstal skrip certbot-auto di tempat lain selain di jalurnya. Saya menyebutnya run_certbot.sh, dan saya menyebutnya dengan argumen yang ingin saya sampaikan ke certbot-auto:

run_certbot.sh renew --debug

@mrballcb Terima kasih! bekerja dengan sempurna.

sudo pip3 install cryptography
sudo pip3 install interface
bekerja untuk saya

./certbot-auto --no-bootstrap

Ini berhasil untuk saya

Saya berhasil menginstal dan menjalankan certbot di Amazon Linux 1 melalui metode pip (python36 yang menyertakan pip). Metode yum menemukan kesalahan di bawah ini yang berada di atas kemampuan saya untuk mendiagnosis.

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 Terima kasih atas posting Anda, solusi Anda memperbaiki masalah yang sama untuk saya. Bersulang

Saya memiliki beberapa masalah yang sama yang disebutkan di sini, dan solusinya cukup pindahkan "certbot-auto" yang dapat dieksekusi ke /usr/local/bin/ . Ini memperbaiki setiap kesalahan dengan segera di server AWS saya.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat