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.
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.
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:
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?