Ao tentar executar no Amazon Linux: Linux ip #1 SMP Sat Oct 24 01:31:37 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Git commit hash: 6950dbd0708d3ba16b717ad1097332fc37e33f15
Estou tendo o erro a seguir:
[ec2-user<strong i="10">@ip</strong> letsencrypt]$ ./letsencrypt-auto
Checking for new version...
Creating virtual environment...
Installing Python packages...
Requesting root privileges to run letsencrypt...
sudo /home/ec2-user/.local/share/letsencrypt/bin/letsencrypt --no-self-upgrade
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 21, in <modul
e>
import OpenSSL
File "/home/ec2-user/.local/share/letsencrypt/local/lib/python2.7/dist-packages/OpenSSL/__init__.py", line 8, in <modul
e>
from OpenSSL import rand, crypto, SSL
File "/home/ec2-user/.local/share/letsencrypt/local/lib/python2.7/dist-packages/OpenSSL/rand.py", line 11, in <module>
from OpenSSL._util import (
File "/home/ec2-user/.local/share/letsencrypt/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
Isso estava funcionando em 8 de fevereiro ... no entanto, ao tentar verificar uma versão antiga para descobrir onde as coisas quebraram, o letsencrypt-auto continua atualizando-se para a versão mais recente!
Qualquer atualização .. Eu também estou enfrentando o mesmo problema ..
Abaixo estão os logs (ambiente - amazon linux)
Comando emitido: ./letsencrypt-auto --help
Checking for new version...
Creating virtual environment...
Installing Python packages...
Installation succeeded.
Requesting root privileges to run letsencrypt...
sudo /home/ec2-user/.local/share/letsencrypt/bin/letsencrypt --help
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 21, in <module>
import OpenSSL
File "/home/ec2-user/.local/share/letsencrypt/local/lib/python2.7/dist-packages/OpenSSL/__init__.py", line 8, in <module>
from OpenSSL import rand, crypto, SSL
File "/home/ec2-user/.local/share/letsencrypt/local/lib/python2.7/dist-packages/OpenSSL/rand.py", line 11, in <module>
from OpenSSL._util import (
File "/home/ec2-user/.local/share/letsencrypt/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
tente isso
sudo ./letsencrypt-auto --help
Tentei o comando acima e funcionou.
Mesmo problema, também resolvido prefixando sudo. Por que essa é a solução?
O mesmo problema ocorreu e foi corrigido usando sudo, obrigado
Também estou tendo esse problema depois de atualizar para o certbot mais recente no Amazon Linux (Linux ip-172-31-10-255 4.9.75-25.55.amzn1.x86_64 # 1 SMP Sex Jan 5 23:50:27 UTC 2018 x86_64 x86_64 x86_64 GNU / Linux)
Parece que o pacote de criptografia está sendo instalado em /opt/eff.org/certbot/venv/local/lib64/python2.7/dist-packages/cryptography/
mas o python não o está encontrando porque não está procurando / operando fora do caminho lib64. Observe que todos os caminhos abaixo são /lib/
e não /lib64/
Removi completamente este env rm -rf /opt/eff.org
e reinstalei o cert-bot, mas continuo recebendo o mesmo erro / problema.
`
[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
@utdrmac Encontrei o mesmo erro um momento atrás ao implantar um novo certificado - seu comentário inspirou a seguinte correção de hacky, obtida descascando a cebola e vinculando as dependências de volta ao caminho local/lib/python2.7
:
ln -s /opt/eff.org/certbot/venv/local/lib64/python2.7/dist-packages/cryptography /opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/cryptography
ln -s /opt/eff.org/certbot/venv/local/lib64/python2.7/dist-packages/cryptography-2.0.2.dist-info /opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/cryptography-2.0.2.dist-info
ln -s /opt/eff.org/certbot/venv/local/lib64/python2.7/dist-packages/cffi /opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/cffi
ln -s /opt/eff.org/certbot/venv/local/lib64/python2.7/dist-packages/cffi-1.10.0.dist-info /opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/cffi-1.10.0.dist-info
ln -s /opt/eff.org/certbot/venv/local/lib64/python2.7/dist-packages/_cffi_backend.so /opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/_cffi_backend.so
ln -s /opt/eff.org/certbot/venv/local/lib64/python2.7/dist-packages/.libs_cffi_backend /opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/.libs_cffi_backend
ln -s /opt/eff.org/certbot/venv/local/lib64/python2.7/dist-packages/zope.interface-4.1.3-py2.7-nspkg.pth /opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/zope.interface-4.1.3-py2.7-nspkg.pth
ln -s /opt/eff.org/certbot/venv/local/lib64/python2.7/dist-packages/zope.interface-4.1.3-py2.7.egg-info /opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/zope.interface-4.1.3-py2.7.egg-info
ln -s /opt/eff.org/certbot/venv/local/lib64/python2.7/dist-packages/zope/interface /opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/zope/interface
@HinchK Eu pensei sobre isso também, mas sim, muito hack-y mesmo. Em vez disso, verifique esta solução: https://github.com/certbot/certbot/issues/1680#issuecomment -358728515 Eu verifico que funciona no último beanstalk elástico.
@HinchK Obrigado. Isso (temporariamente) consertou para mim. (AWS)
@HinchK , sua solução foi incrível. Obrigado.
Chiming naquela solução
Quebrou quando fui atualizar meu certificado hoje e o certbot atualizou de 0.19.0 para 0.21.1.
Eu mesma enfrentei o problema pela segunda vez. Parece ser um problema quando o certbot executa atualizações sem permissões suficientes. A atualização está falhando silenciosamente, deixando o software em um estado ruim detectado quando o certbot tenta realmente ser executado. Uma melhor detecção de erros na rotina de instalação / atualização da biblioteca pode ajudar a evitar confusões futuras.
A solução que @utdrmac vinculou acima funcionou para corrigir isso para mim (mas tive que executá-lo como root). Recebi o mesmo erro quando o certbot tentou atualizar para 0.22.0 agora (no AWS EC2).
Acabei de encontrar esse problema novamente em uma região diferente da AWS; e pode confirmar que a instalação do @utdrmac via pip funcionou para mim! https://github.com/certbot/certbot/issues/1680#issuecomment -358728515
Implementando o certbot de pip em minhas instâncias; como minha solução alternativa de link simbólico anterior foi um hack bastante grosseiro que funcionou, mas pode não funcionar no futuro.
Eu tive o mesmo problema. Aqui está o que resolveu para mim:
/opt/eff.org/certbot/venv/local/bin/pip instalar interface de criptografia
depois de tentar de tudo, o hack do @HinchK foi a única coisa que funcionou para mim
Também posso confirmar awls99 - encontrou o mesmo problema nos últimos dias, tentei de tudo, todas as soluções não tiveram efeito sobre o problema.
O @HinchK way corrigiu o problema.
A solução
@HinchK um tiro, uma morte! :-)
@gmegidish é o cara !!!
Obrigado!!
/opt/eff.org/certbot/venv/local/bin/pip instalar interface de criptografia
funcionou para mim!
@alex , alguma ideia do que pode estar acontecendo aqui?
No momento, estamos usando criptografia 2.0.2, pyOpenSSL 16.2.0 e outras marcações em https://github.com/certbot/certbot/blob/master/letsencrypt-auto-source/pieces/dependency-requirements.txt.
Se for sobre o Amazon Linux, acho que é https://github.com/pypa/pip/issues/4464
cc: @reaperhulk
ei,
Eu encontrei uma solução que funcionou para mim por CTRL-F a web com meus olhos.
Neste link, @utdrmac instala o certbot diretamente com o pip.
https://github.com/certbot/certbot/issues/1680#issuecomment -358728515
Eu trabalhei para mim, pelo menos.
E oh, pense em instalar plugins certbot usando pip também para gerenciar a configuração automática de, digamos, nginx (por @bmw ):
https://github.com/certbot/certbot/issues/1736#issuecomment -165189246
Boa sorte !
editar: Também estou instalando certificados no Amazon Linux.
Acertei esse problema novamente, segui os passos simples nos links da postagem de @eregnier , funcionou na primeira tentativa, agora meu crontab fica assim:
0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/bin/certbot renew --no-bootstrap --nginx 1> /var/log/cerbot.log 2>&1
Estou com o mesmo problema hoje, a solução do @HinchK funciona bem, só tenho que substituir o
ln -s /opt/eff.org/certbot/venv/local/lib64/python2.7/dist-packages/cryptography-2.0.2.dist-info /opt/eff.org/certbot/venv/local/lib/ python2.7 / dist-packages / cryptography-2.0.2.dist-info
por
ln -s /opt/eff.org/certbot/venv/local/lib64/python2.7/dist-packages/cryptography-2.2.2.dist-info /opt/eff.org/certbot/venv/local/lib/ python2.7 / dist-packages / cryptography-2.2.2.dist-info
e funcionou como um encanto.
Eu enfrentei esse problema hoje.
Minha solução alternativa para o certbot 0.26.1 no Amazon Linux AMI 4.4.30-32.54.amzn1.x86_64 foi:
cd /opt/eff.org/certbot/venv/lib64/python2.7
rmdir site-packages (no meu caso, este diretório estava vazio)
ln -s dist-packages site-packages
E isso é tudo, funcionou para mim.
Confirme se a solução @smartITNinja funcionou para mim também.
Eles estão tendo problemas no Amazon Linux 1 ou 2? Se for o Amazon Linux 2, você pode e deve usar os pacotes EPEL7 acima de certbot-auto
. Como instalar esses pacotes está descrito em https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/SSL-on-an-instance.html#letsencrypt.
@smartITNinja @lpkirby
Quando tentei ln dist-packages site-packages
, achei hard link not allowed for directory
.
Você realmente vinculou dist-packages a pacotes de sites?
@saiday - fwiw - Não, fiz um link simbólico.
@bmw - Isso é interessante. Alguns lugares nos documentos da AWS dizem que você não deve instalar a EPEL no Amazon Linux 2 e alguns mostram como fazer isso.
@bmw Amazon Linux 1
@saiday , desculpe, é um "link físico . O comentário foi corrigido agora, incluindo as etapas corretas. Obrigado!
/opt/eff.org/certbot/venv/lib64/python2.7
drwxr-xr-x 9 root root 4096 Jul 18 14:14 dist-packages
lrwxrwxrwx 1 root root 13 Jul 18 14:26 site-packages -> dist-packages
Isso é interessante. Alguns lugares nos documentos da AWS dizem que você não deve instalar a EPEL no Amazon Linux 2 e alguns mostram como fazer isso.
Huh. Infelizmente, não sei o suficiente sobre o Amazon Linux 2 para fornecer uma recomendação de uma forma ou de outra. Tudo que posso dizer é:
certbot-auto
.@smartITNinja thx, isso resolveu meu problema no Amazon EC2
@smartITNinja que funcionou para mim em um Amazon Linux 1 EC2 hoje.
Saúde 👍
A única coisa que funcionou foi o hack do @smartITNinja . Eu me deparo com esse problema o tempo todo. O script certbot precisa ser atualizado para "capturar" isso e contornar isso ou fornecer uma mensagem de erro útil. O AWS EC2 é uma distribuição principal e o Let's Encrypt deve funcionar imediatamente com ele. PERÍODO.
Estava tendo o mesmo problema em um Amazon Linux AMI.
Acabou usando apenas o contêiner docker certbot. Demorou cerca de 90 segundos.
Supondo que você tenha o docker instalado e executando:
docker pull certbot/certbot
docker run -it --rm --name certbot \
-v "/etc/letsencrypt:/etc/letsencrypt" \
-v "/var/lib/letsencrypt:/var/lib/letsencrypt" \
certbot/certbot \
certonly --manual --preferred-challenges dns-01 --agree-tos -d "example.com" -d "*.example.com" --server https://acme-v02.api.letsencrypt.org/directory
Tive esse problema na minha base de AMI que uso. Fiz isso para resolver o problema. (link simbólico não funcionou para mim)
sudo rm -Rf /opt/eff.org
sudo /opt/letsencrypt/letsencrypt-auto --help --debug
Agora que a base está consertada, posso usá-la para qualquer site conforme o esperado. Essa maneira é boa se você ainda não tem um certificado e está trabalhando apenas na sua base.
Se você já tem um certificado ou precisa renovar:
Primeiro remova o pacote defeituoso:
sudo rm -Rf /opt/eff.org
O anexo --debug
ao comando que você está executando.
Graças a @gmegidish , encontrei a solução que funcionou para mim:
unset PYTHON_INSTALL_LAYOUT
sudo rm -rf /opt/eff.org/certbot/
pip install cryptography interface
./certbot-auto renew -v --debug
/opt/letsencrypt/letsencrypt-auto --help
(testando se funciona)
Atualizar:
Acabei de fazer uma instalação básica do Amazon Linux 2 e o certbot mais recente funcionou quase fora da caixa. A única coisa que tive de instalar foi o python-virtualenv do AWS yum repos.
Fechando em favor do rastreamento de suporte e caminhos de instalação recomendados em # 6505 para Amazon Linux 1 e # 6506 para Amazon Linux 2.
Isso funcionou: sudo /opt/eff.org/certbot/venv/local/bin/pip install cryptography interface zope
Isso funcionou:
sudo /opt/eff.org/certbot/venv/local/bin/pip install cryptography interface zope
Isso funcionou para mim também.
E ... a última atualização do certbot travou com:
Requesting to rerun ./certbot-auto with root privileges...
Upgrading certbot-auto 0.40.0 to 0.40.1...
Replacing certbot-auto...
Creating virtual environment...
Installing Python packages...
Installation succeeded.
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 7, in <module>
from josepy import errors, util
File "/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/josepy/util.py", line 7, 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 crypto, SSL
File "/opt/eff.org/certbot/venv/local/lib/python2.7/dist-packages/OpenSSL/crypto.py", line 12, in <module>
from cryptography import x509
ImportError: No module named cryptography
Usei o seguinte para corrigi-lo:
sudo /opt/eff.org/certbot/venv/local/bin/pip install cryptography interface zope
E isso me fez trabalhar de novo ... talvez não devesse atualizar automaticamente?
E isso me fez trabalhar de novo ... talvez não devesse atualizar automaticamente?
Se você quiser esse comportamento, pode usar o sinalizador --no-self-upgrade
, entretanto, lembre-se de que isso o deixará excluído de todas as alterações de segurança ou daquelas que o mantêm compatível com os servidores do Let's Encrypt.
Lembre-se também de que quando você executa o certbot-auto pela primeira vez sem sinalizadores no Amazon Linux, ele sai com a mensagem:
FATAL: Amazon Linux support is very experimental at present...
if you would like to work on improving it, please ensure you have backups
and then run this script again with the --debug flag!
Até que isso mude (que é rastreado por https://github.com/certbot/certbot/issues/6505), acho que você deve continuar a ter problemas como esses.
Tenho uma solução para a instância Ec2 Amazon Linux AMI:
Instale todos os pacotes em venv:
/opt/eff.org/certbot/venv/bin/pip2 install cryptography zope interface
/opt/eff.org/certbot/venv/bin/pip2 install --upgrade pip
em seguida, você precisa sincronizar as pastas lib64 / e lib /:
rsync -avz /opt/eff.org/certbot/venv/lib64/python2.7/dist-packages/ /opt/eff.org/certbot/venv/lib/python2.7/dist-packages/
teste:
/usr/local/bin/certbot-auto certonly --debug --webroot
Trabalhando para mim em duas instâncias da AMI. =)
Pelo que vale a pena, decidi abandonar o script certbot-auto
e colocá-lo funcionando no Amazon Linux com as seguintes etapas:
pip install -y python36 python36-devel python36-tools augeas-libs libffi-devel
pip-3.6 install certbot certbot-dns-route53
Eu sei que não é recomendado - mas funcionou para mim!
A propósito, no Amazon Linux 2, está no gerenciador de pacotes, tudo o que você precisa fazer é
amazon-linux-extras install epel
yum -y install certbot certbot-dns-route53
A solução é habilitar o EPEL, simplesmente execute sudo yum-config-manager --enable epel
, isso é mencionado nos documentos / instruções do certbot e nos documentos do aws, consulte:
O script certbot-auto em meu servidor se atualizou automaticamente (não sabia que faria isso e agora sei sobre o sinalizador --no-self-upgrade
) e o problema "ImportError: Nenhum módulo denominado criptografia" voltou.
Consegui encontrar uma solução que funcionou aqui: https://aws.nz/best-practice/letsencrypt-amazon-linux/
Comentários muito úteis
@utdrmac Encontrei o mesmo erro um momento atrás ao implantar um novo certificado - seu comentário inspirou a seguinte correção de hacky, obtida descascando a cebola e vinculando as dependências de volta ao caminho
local/lib/python2.7
: