pip install falla con "error de conexión: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:598)"

Soy muy nuevo en Python y estoy intentando > pip install linkchecker en Windows 7. Algunas notas:

  • pip install está fallando sin importar el paquete. Por ejemplo, > pip install scrapy también resulta en el error SSL.
  • La instalación vainilla de Python 3.4.1 incluía pip 1.5.6. Lo primero que intenté hacer fue instalar linkchecker. Python 2.7 ya estaba instalado, venía con ArcGIS. python y pip no estaban disponibles desde la línea de comandos hasta que instalé la 3.4.1.
  • > pip search linkchecker funciona. Tal vez sea porque pip search no verifica el certificado SSL del sitio.
  • Estoy en una red de la empresa pero no pasamos por un proxy para llegar a Internet.
  • Cada computadora de la compañía (incluyendo la mía) tiene una Autoridad de Certificados Raíz de Confianza que se usa por varias razones, incluyendo la habilitación del monitoreo del tráfico TLS a https://google.com. No estoy seguro de si eso tiene algo que ver.

Aquí está el contenido de mi pip.log después de ejecutar pip install linkchecker:

Downloading/unpacking linkchecker
  Getting page https://pypi.python.org/simple/linkchecker/
  Could not fetch URL https://pypi.python.org/simple/linkchecker/: connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:598)
  Will skip URL https://pypi.python.org/simple/linkchecker/ when looking for download links for linkchecker
  Getting page https://pypi.python.org/simple/
  Could not fetch URL https://pypi.python.org/simple/: connection error: HTTPSConnectionPool(host='pypi.python.org', port=443): Max retries exceeded with url: /simple/ (Caused by <class 'http.client.CannotSendRequest'>: Request-sent)
  Will skip URL https://pypi.python.org/simple/ when looking for download links for linkchecker
  Cannot fetch index base URL https://pypi.python.org/simple/
  URLs to search for versions for linkchecker:
  * https://pypi.python.org/simple/linkchecker/
  Getting page https://pypi.python.org/simple/linkchecker/
  Could not fetch URL https://pypi.python.org/simple/linkchecker/: connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:598)
  Will skip URL https://pypi.python.org/simple/linkchecker/ when looking for download links for linkchecker
  Could not find any downloads that satisfy the requirement linkchecker
Cleaning up...
  Removing temporary dir C:\Users\jcook\AppData\Local\Temp\pip_build_jcook...
No distributions at all found for linkchecker
Exception information:
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\pip\basecommand.py", line 122, in main
    status = self.run(options, args)
  File "C:\Python34\lib\site-packages\pip\commands\install.py", line 278, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "C:\Python34\lib\site-packages\pip\req.py", line 1177, in prepare_files
    url = finder.find_requirement(req_to_install, upgrade=self.upgrade)
  File "C:\Python34\lib\site-packages\pip\index.py", line 277, in find_requirement
    raise DistributionNotFound('No distributions at all found for %s' % req)
pip.exceptions.DistributionNotFound: No distributions at all found for linkchecker

Puedes especificar un certificado con este parámetro:

pip --cert /etc/ssl/certs/FOO_Root_CA.pem install linkchecker

Ver: Docs » Guía de referencia » pip

Si al especificar el certificado raíz de su empresa no funciona, tal vez funcione el de cURL: http://curl.haxx.se/ca/cacert.pem

Debe utilizar un archivo PEM y no un archivo CRT. Si tienes un archivo CRT necesitarás convertir el archivo a PEM Hay informes en los comentarios de que esto ahora funciona con un archivo CRT pero no lo he verificado.

Compruebe también: Verificación de certificados SSL.

Comentarios (11)

Puedes intentar evitar el error SSL utilizando http en lugar de https. Por supuesto, esto no es óptimo en términos de seguridad**, pero si tienes prisa debería servir:

pip install --index-url=http://pypi.python.org/simple/ linkchecker
Comentarios (9)

He solucionado este problema eliminando mi pip e instalando la versión más antigua de pip: https://pypi.python.org/pypi/pip/1.2.1

Comentarios (5)