2 votes

easy_install et pip échouent avec des avertissements SSL

Je m'occupe de quelques serveurs RHEL6 et j'essaie de les configurer pour utiliser un serveur PyPi interne (mandaté par Nexus 3).

Le problème est que notre serveur PyPi interne est l'un des nombreux VHosts SSL sur le même serveur Nginx, et que Python 2.6 n'est pas compatible SNI ; ainsi, easy_install échoue parce qu'il essaie de télécharger à partir de la mauvaise URL Vhost et pip échoue avec SNIMissingWarning et InsecurePlatformWarning.

J'ai consulté les conseils sur https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings mais il semble qu'il s'agisse d'une solution de contournement pour vos propres scripts ; cela ne résout pas les problèmes de Python lui-même. J'ai quand même installé urllib3 et les paquets associés, et le problème persiste.

[root@foo.internal ~]# pip install --index https://nexus3.internal/repository/pypi-proxy/simple twine
DEPRECATION: Python 2.6 is no longer supported by the Python core team, please upgrade your Python. A future version of pip will drop support for Python 2.6
Collecting twine
/usr/lib/python2.6/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:318: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/security.html#snimissingwarning.
  SNIMissingWarning
/usr/lib/python2.6/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:122: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
  Could not fetch URL https://nexus3.internal/repository/pypi-proxy/simple/twine/: There was a problem confirming the ssl certificate: [Errno 1] _ssl.c:490: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed - skipping
  Could not find a version that satisfies the requirement twine (from versions: )
No matching distribution found for twine

2voto

Taz8du29 Points 86

Il suffit de consulter le lien fourni dans le message d'erreur ;)

https://urllib3.readthedocs.io/en/latest/security.html#insecureplatformwarning

SNIMissingWarning

Cela se produit sur les versions de Python 2 antérieures à 2.7.9. Ces anciennes versions ne supportent pas le SNI. Cela peut amener les serveurs à présenter un certificat que le client pense être invalide. Suivez la procédure pyOpenSSL pour résoudre cet avertissement.


Le lien pyOpenSSL renvoie :

Vérification des certificats en Python 2

Les anciennes versions de Python 2 sont construites avec un module ssl qui manque de support SNI et peut être en retard sur les mises à jour de sécurité. Pour ces raisons, il est recommandé d'utiliser pyOpenSSL.

Si vous installez urllib3 avec l'option secure extra, tous les paquets nécessaires à la vérification des certificats sur Python 2 seront installés :

pip install urllib3[secure]

Si vous souhaitez installer les paquets manuellement, vous aurez besoin de pyOpenSSL , cryptography , idna y certifi

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X