CentOS 7.4.1708 (64 bits)
centos 7 yum
sudo certbot --authenticator standalone --installer nginx --pre-hook "nginx -s stop" --post-hook "nginx"
saída:
Traceback (most recent call last):
File "/bin/certbot", line 9, in <module>
load_entry_point('certbot==0.20.0', 'console_scripts', 'certbot')()
File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 572, i n load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2755, in load_entry_point
return ep.load()
File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2408, in load
return self.resolve()
File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2414, in resolve
module = __import__(self.module_name, fromlist=['__name__'], level=0)
File "/usr/lib/python2.7/site-packages/certbot/main.py", line 19, in <module>
from certbot import client
File "/usr/lib/python2.7/site-packages/certbot/client.py", line 11, in <module >
from acme import client as acme_client
File "/usr/lib/python2.7/site-packages/acme/client.py", line 32, in <module>
requests.packages.urllib3.contrib.pyopenssl.inject_into_urllib3() # type: i gnore
File "/usr/lib/python2.7/site-packages/urllib3/contrib/pyopenssl.py", line 112 , in inject_into_urllib3
_validate_dependencies_met()
File "/usr/lib/python2.7/site-packages/urllib3/contrib/pyopenssl.py", line 147 , in _validate_dependencies_met
raise ImportError("'pyOpenSSL' module missing required functionality. "
ImportError: 'pyOpenSSL' module missing required functionality. Try upgrading to v0.14 or newer.
Eu o exclui para me dar o certificado, mas deu esse erro. já tentei atualizar o pyOpenSSL, mas não funcionou
/var/log/letsencrypt
por padrão. Sinta-se à vontade para redigir domínios, e-mail e endereços IP como achar melhor.A pasta não existe
back-end upstream {
# o servidor netdata
servidor 127.0.0.1:19999;
manter vivo 64;
}
servidor {
# nginx ouve isso
ouça 80;
# the virtual host name of this
server_name netdata.mydomain.fi;
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_pass_request_headers on;
proxy_set_header Connection "keep-alive";
proxy_store off;
}
}
centos-release-7-4.1708.el7.centos.x86_64
ImportError: módulo 'pyOpenSSL' sem funcionalidade necessária. Tente atualizar para v0.14 ou mais recente.
atualizar pyOpenSSL 0.13.1
de pyOpenSSL 17.5.0
quando rebaixar:
sudo pip install pyOpenSSL==0.15.1
mesmo erro
ImportError: módulo 'pyOpenSSL' sem funcionalidade necessária. Tente atualizar para v0.14 ou mais recente.
tente pip install --upgrade --force-reinstall 'requests==2.6.0'
Não misture pacotes yum
instalados com pip
. A correção adequada envolve a remoção de pacotes pip e instalar tudo de yum
. Eu delineei aqui .
Você não precisa do pyOpenSSL mais recente no CentOS 7 para executar o certbot!
pip uninstall requests
yum reinstall python-requests
pip uninstall six
yum reinstall python-six
pip uninstall urllib3
yum reinstall python-urllib3
Este bug ainda persiste no RHEL 7
Traceback (most recent call last):
File "/bin/certbot", line 9, in <module>
load_entry_point('certbot==0.22.2', 'console_scripts', 'certbot')()
File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 558, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2682, in load_entry_point
return ep.load()
File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2355, in load
return self.resolve()
File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2361, in resolve
module = __import__(self.module_name, fromlist=['__name__'], level=0)
File "/usr/lib/python2.7/site-packages/certbot/main.py", line 20, in <module>
from certbot import client
File "/usr/lib/python2.7/site-packages/certbot/client.py", line 13, in <module>
from acme import client as acme_client
File "/usr/lib/python2.7/site-packages/acme/client.py", line 33, in <module>
requests.packages.urllib3.contrib.pyopenssl.inject_into_urllib3() # type: ignore
File "/usr/lib/python2.7/site-packages/urllib3/contrib/pyopenssl.py", line 112, in inject_into_urllib3
_validate_dependencies_met()
File "/usr/lib/python2.7/site-packages/urllib3/contrib/pyopenssl.py", line 147, in _validate_dependencies_met
raise ImportError("'pyOpenSSL' module missing required functionality. "
ImportError: 'pyOpenSSL' module missing required functionality. Try upgrading to v0.14 or newer.
Tão agravante. Estou começando a odiar Centos.
Tentei atualizar o pyOpenSSL no CentOS, obtive o seguinte erro:
sudo pip install pyOpenSSL==0.15.1
Coletando pyOpenSSL==0.15.1
Baixando https://files.pythonhosted.org/packages/37/2f/840f2656e4bcf257cb814825bb751a9197ca6f39f1fa036ab111920ac7ef/pyOpenSSL-0.15.1-py2.py3-none-any.whl (102kB)
100% |████████████████████████████████| 112 KB 1,9 MB/s
Requisito já satisfeito: seis>=1.5.2 em /usr/lib/python2.7/site-packages (de pyOpenSSL==0.15.1) (1.9.0)
Requisito já satisfeito: criptografia>=0.7 em /usr/lib64/python2.7/site-packages (de pyOpenSSL==0.15.1) (2.3.1)
Requisito já satisfeito: idna>=2.1 em /usr/lib/python2.7/site-packages (da criptografia>=0.7->pyOpenSSL==0.15.1) (2.7)
Requisito já satisfeito: enum34; python_version < "3" em /usr/lib/python2.7/site-packages (da criptografia>=0.7->pyOpenSSL==0.15.1) (1.0.4)
Requisito já satisfeito: cffi!=1.11.3,>=1.7 in /usr/lib64/python2.7/site-packages (da criptografia>=0.7->pyOpenSSL==0.15.1) (1.11.5)
Requisito já satisfeito: asn1crypto>=0.21.0 em /usr/lib/python2.7/site-packages (da criptografia>=0.7->pyOpenSSL==0.15.1) (0.24.0)
Requisito já satisfeito: ipaddress; python_version < "3" em /usr/lib/python2.7/site-packages (da criptografia>=0.7->pyOpenSSL==0.15.1) (1.0.16)
Requisito já satisfeito: pycparser em /usr/lib/python2.7/site-packages (de cffi!=1.11.3,>=1.7->cryptography>=0.7->pyOpenSSL==0.15.1) (2.14)
Instalando pacotes coletados: pyOpenSSL
Instalação existente encontrada: pyOpenSSL 0.13.1
Não é possível desinstalar 'pyOpenSSL'. É um projeto instalado do distutils e, portanto, não podemos determinar com precisão quais arquivos pertencem a ele, o que levaria a apenas uma desinstalação parcial.
Um pouco de contexto: o pacote dist para pyOpenSSL está em 0.13.1. para desinstalá-lo para atualizá-lo através do pip - Yum me faz desinstalar o certbot. Considerando que o certbot foi toda a razão pela qual eu preciso atualizar o pyOpenSSL - meio que nos coloca em um catch 22.
yum info pyOpenSSL
Plugins carregados: fastmirror, langpacks
Carregando velocidades de espelho do hostfile em cache
Tanto para a depuração quanto para o inferno, desinstalei o dist pyOpenSSL (e, portanto, o certbot), fiz uma instalação pip do pyOpenSSL e reinstalei o certbot. Yum substituiu pyOpenSSL 0.15.1 com 0.13.1.... e mesmo resultado quando tento renovar com certbot.
Tentei então sudo pip install --upgrade pyopenssl - e a mesma mensagem de erro sobre a versão instalada do distutils.
Nenhuma solução alternativa hoje - acho que meus certificados vão expirar então
acme.sh funciona, eu desisti do certbot ;)
Pessoal, realmente encontrei uma correção para isso. Não posso receber crédito por fazer outra coisa além de tropeçar no artigo: https://medium.com/@getpagespeed/fix -importerror-pyopenssl-module-missing-required-functionality-e1c514797204
Todos os créditos a Danila Vershinin por encontrar a solução!
Só posso acrescentar que, se você tiver o certbot e o aws cli instalados, é muito provável que tenha esse problema.
da minha pesquisa rápida, parece que a instalação de pacotes do sistema como sugerido break aws cli. consertar aws cli quebra certbot e etc, então não é realmente divertido :)
Pessoal, realmente encontrei uma correção para isso. Não posso receber crédito por fazer outra coisa além de tropeçar no artigo: https://medium.com/@getpagespeed/fix -importerror-pyopenssl-module-missing-required-functionality-e1c514797204
Todos os créditos a Danila Vershinin por encontrar a solução!
A correção não funciona para mim - nenhum pacote pip instalado e todos os listados yum relatam como já instalados e atualizados.
Sobre ter aws cli e certbot no mesmo sistema.
Tudo se resume a uma versão conflitante do urllib3.
awscli-1.16.81
requer urllib3-1.24.1
e python2-certbot-0.27.1-1.el7.noarch.rpm
funciona com urllib3-1.10.2
.
A versão mais recente dá o erro mencionado.
Não consigo fazê-los trabalhar juntos, mesmo instalando awscli
com --user
dá os mesmos problemas, já que o urllib mais recente é colocado em /root/.local/lib
e certbot
vai olhando aqui também...
Não consigo fazê-los trabalhar juntos, mesmo instalando o awscli com --user dá os mesmos problemas, pois o urllib mais recente é colocado em /root/.local/lib e o certbot vai procurar aqui também ...
Tive o mesmo problema com versões conflitantes do urllib3 depois de instalar o aws cli. Eventualmente, depois de corrigir o certbot, instalei o aws cli usando virtualenv.
https://docs.aws.amazon.com/cli/latest/userguide/install-virtualenv.html
Agora, certbot e aws cli estão bem.
Também instalei o awscli usando o instalador empacotado que eles fornecem, para que seja autocontido.
https://docs.aws.amazon.com/cli/latest/userguide/install-bundle.html
Outra maneira de contornar o conflito entre awscli e certbot é instalar o python36 e executar o awscli usando-o.
O pacote certbot pode não instalar seus módulos python em seu próprio ambiente ou ser menos rigoroso quando se trata de requisitos de versão?
Comentários muito úteis
tente
pip install --upgrade --force-reinstall 'requests==2.6.0'