CentOS 7.4.1708 (64 bits)
centos 7 miam
sudo certbot --authenticator autonome --installer nginx --pre-hook "nginx -s stop" --post-hook "nginx"
sortir:
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.
Je l'ai excepté pour me donner un certificat, mais cela a donné cette erreur. déjà essayé de mettre à jour pyOpenSSL, mais cela n'a pas fonctionné
/var/log/letsencrypt
par défaut. N'hésitez pas à supprimer les domaines, les adresses e-mail et IP comme bon vous semble.Le dossier n'existe pas
backend en amont {
# le serveur netdata
serveur 127.0.0.1:19999 ;
garder en vie 64 ;
}
serveur {
# nginx écoute ceci
écouter 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 : le module 'pyOpenSSL' manque la fonctionnalité requise. Essayez de mettre à niveau vers la v0.14 ou une version plus récente.
mettre à niveau pyOpenSSL 0.13.1
de à pyOpenSSL 17.5.0
lors de la rétrogradation :
sudo pip install pyOpenSSL==0.15.1
même erreur
ImportError : le module 'pyOpenSSL' manque la fonctionnalité requise. Essayez de mettre à niveau vers la v0.14 ou une version plus récente.
essayez pip install --upgrade --force-reinstall 'requests==2.6.0'
Ne mélangez pas les packages yum
installés avec ceux pip
. Le correctif approprié consiste à supprimer les packages pip et à tout installer à partir de yum
. Je l'ai décrit ici .
Vous n'avez pas besoin de la version plus récente de pyOpenSSL sur CentOS 7 pour exécuter certbot !
pip uninstall requests
yum reinstall python-requests
pip uninstall six
yum reinstall python-six
pip uninstall urllib3
yum reinstall python-urllib3
Ce bogue persiste toujours dans 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.
Donc aggravant. Je commence à détester Centos.
J'ai essayé de mettre à jour pyOpenSSL sur CentOS, obtenez l'erreur suivante :
sudo pip installer pyOpenSSL==0.15.1
Collecte de pyOpenSSL==0.15.1
Téléchargement https://files.pythonhosted.org/packages/37/2f/840f2656e4bcf257cb814825bb751a9197ca6f39f1fa036ab111920ac7ef/pyOpenSSL-0.15.1-py2.py3-none-any.whl (102kB)
100 % | 112 Ko 1,9 Mo/s
Exigence déjà satisfaite : six>=1.5.2 dans /usr/lib/python2.7/site-packages (depuis pyOpenSSL==0.15.1) (1.9.0)
Exigence déjà satisfaite : cryptographie>=0.7 dans /usr/lib64/python2.7/site-packages (depuis pyOpenSSL==0.15.1) (2.3.1)
Exigence déjà satisfaite : idna>=2.1 dans /usr/lib/python2.7/site-packages (from cryptography>=0.7->pyOpenSSL==0.15.1) (2.7)
Exigence déjà satisfaite : enum34 ; python_version < "3" dans /usr/lib/python2.7/site-packages (de cryptographie>=0.7->pyOpenSSL==0.15.1) (1.0.4)
Exigence déjà satisfaite : cffi!=1.11.3,>=1.7 dans /usr/lib64/python2.7/site-packages (from cryptography>=0.7->pyOpenSSL==0.15.1) (1.11.5)
Exigence déjà satisfaite : asn1crypto>=0.21.0 dans /usr/lib/python2.7/site-packages (from cryptography>=0.7->pyOpenSSL==0.15.1) (0.24.0)
Exigence déjà satisfaite : adresse IP ; python_version < "3" dans /usr/lib/python2.7/site-packages (de cryptographie>=0.7->pyOpenSSL==0.15.1) (1.0.16)
Exigence déjà satisfaite : pycparser dans /usr/lib/python2.7/site-packages (depuis cffi!=1.11.3,>=1.7->cryptography>=0.7->pyOpenSSL==0.15.1) (2.14)
Installation des packages collectés : pyOpenSSL
Installation existante trouvée : pyOpenSSL 0.13.1
Impossible de désinstaller 'pyOpenSSL'. Il s'agit d'un projet installé par distutils et nous ne pouvons donc pas déterminer avec précision quels fichiers lui appartiennent, ce qui ne conduirait qu'à une désinstallation partielle.
Un peu de contexte : le package dist pour pyOpenSSL est à 0.13.1. pour le désinstaller afin de le mettre à jour via pip - Yum me fait désinstaller certbot. Considérer que certbot était la raison pour laquelle je devais mettre à jour pyOpenSSL - nous met en quelque sorte dans un piège 22.
miam info pyOpenSSL
Plugins chargés : Fastmirror, langpacks
Chargement des vitesses de miroir à partir du fichier hôte mis en cache
À la fois pour le débogage et pour le plaisir, j'ai désinstallé la dist pyOpenSSL (et donc certbot), effectué une installation pip de pyOpenSSL et réinstallé certbot. Yum a remplacé pyOpenSSL 0.15.1 par 0.13.1... et même résultat lorsque j'essaie de renouveler avec certbot.
J'ai ensuite tenté une installation sudo pip --upgrade pyopenssl - et le même message d'erreur concernant la version installée de distutils.
Pas de solution de contournement aujourd'hui - je suppose que mes certificats vont expirer alors
acme.sh fonctionne, j'ai abandonné certbot ;)
Les gars, en fait trouvé un correctif pour cela. Je ne peux pas m'attribuer le mérite d'avoir fait autre chose que de tomber sur l'article : https://medium.com/@getpagespeed/fix -importerror-pyopenssl-module-missing-required-functionality-e1c514797204
Tout le mérite revient à Danila Vershinin pour avoir trouvé la solution !
Je ne peux qu'ajouter que si vous avez installé certbot et aws cli, il est très probable qu'il y ait ce problème.
d'après mes recherches rapides, il semble que l'installation de packages système comme suggéré casse aws cli. réparer aws cli casse certbot et etc donc pas vraiment amusant :)
Les gars, en fait trouvé un correctif pour cela. Je ne peux pas m'attribuer le mérite d'avoir fait autre chose que de tomber sur l'article : https://medium.com/@getpagespeed/fix -importerror-pyopenssl-module-missing-required-functionality-e1c514797204
Tout le mérite revient à Danila Vershinin pour avoir trouvé la solution !
Le correctif ne fonctionne pas pour moi - aucun paquet pip n'est installé et tous ceux répertoriés dans les rapports yum sont déjà installés et à jour.
En ce qui concerne le fait d'avoir aws cli et certbot sur le même système.
Cela se résume à une version conflictuelle de urllib3.
awscli-1.16.81
nécessite urllib3-1.24.1
et python2-certbot-0.27.1-1.el7.noarch.rpm
fonctionne avec urllib3-1.10.2
.
La version la plus récente donne l'erreur susmentionnée.
Je n'arrive pas à les faire travailler ensemble, même l'installation awscli
avec --user
donne les mêmes problèmes, car la nouvelle urllib est alors placée dans /root/.local/lib
et certbot
va regarde ici aussi...
Je ne peux pas les faire travailler ensemble, même l'installation d'awscli avec --user pose les mêmes problèmes, car la nouvelle urllib est ensuite placée dans /root/.local/lib et certbot va également chercher ici ...
Avait le même problème avec des versions conflictuelles d'urllib3 après l'installation d'aws cli. Finalement, après avoir réparé certbot, j'ai installé aws cli en utilisant virtualenv.
https://docs.aws.amazon.com/cli/latest/userguide/install-virtualenv.html
Maintenant, certbot et aws cli vont bien.
J'ai également installé awscli à l'aide du programme d'installation fourni qu'ils fournissent, de sorte qu'il soit autonome.
https://docs.aws.amazon.com/cli/latest/userguide/install-bundle.html
Une autre façon de contourner le conflit entre awscli et certbot consiste à installer python36 et à exécuter awscli en l'utilisant.
Le package certbot peut-il ne pas installer ses modules python dans son propre environnement ou être moins strict en ce qui concerne les exigences de version ?
Commentaire le plus utile
essayez
pip install --upgrade --force-reinstall 'requests==2.6.0'