there the problem error disable confirming check certificates certificate_verify_failed applications python windows ssl pip

python - the - la instalación de pip falla con "error de conexión:[SSL: CERTIFICATE_VERIFY_FAILED] error en la verificación del certificado(_ssl.c: 598)"



there was a problem confirming the ssl certificate (29)

Ajuste la fecha y la hora correctas!

Mabey, llego un poco tarde para contestar.

Para mí, se supo que mi fecha y hora estaban mal configuradas en la Raspberry Pi que resultó que todas las conexiones SSL y HTTPS fallaron con el servidor https://files.pythonhosted.org/ .

Actualízalo así:

sudo date -s "Wed Aug 23 11:12:00 GMT+1 2018" dpkg-reconfigure tzdata

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

  • La instalación de pip está fallando sin importar el paquete. Por ejemplo, > pip install scrapy también produce el error SSL.
  • La instalación de vainilla de Python 3.4.1 incluye pip 1.5.6. Lo primero que intenté hacer fue instalar linkchecker. Python 2.7 ya estaba instalado, vino con ArcGIS. python y pip no estaban disponibles desde la línea de comandos hasta que instalé 3.4.1.
  • > pip search linkchecker funciona. Tal vez sea porque la búsqueda pip 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 (incluida la mía) tiene una Autoridad de certificación de raíz confiable que se usa por varios motivos, incluida la habilitación del monitoreo del tráfico TLS en https://google.com . No estoy seguro si eso tiene algo que ver con eso.

Aquí están los contenidos de mi pip.log después de ejecutar el 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


A partir de ahora, cuando pip se ha actualizado a 10 y ahora han cambiado su ruta de pypi.python.org a files.pythonhosted.org.


Ante todo,

pip install --trusted-host pypi.python.org <package name>

no funciono para mi Seguí recibiendo el error CERTIFICATE_VERIFY_FAILED. Sin embargo, noté en los mensajes de error que hacían referencia al sitio ''pypi.org''. Entonces, utilicé esto como el nombre de host de confianza en lugar de pypi.python.org. Eso casi me lleva allí; la carga seguía fallando con CERTIFICATE_VERIFY_FAILED, pero en un momento posterior. Al encontrar la referencia al sitio web que estaba fallando, lo incluí como un host de confianza. Lo que eventualmente funcionó para mí fue:

pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org <package name>


En mi caso, estaba ejecutando Python en la imagen minimalista de la ventana acoplable alpina. Faltaban certificados de CA raíz. Fijar:

apk update && apk add ca-certificates


En mi caso, observé que el pip falló durante la instalación de un paquete relacionado. En mi caso, el python-heatclient requería posicional, lo que requería pbr. La instalación de pbr estaba fallando. Cuando instalé pbr explícitamente antes de instalar python-heatclient, funcionó como se esperaba.

La llamada que falló venv/bin/pip install python-heatclient

Llamadas que tuvieron éxito

venv/bin/pip install pbr

venv/bin/pip install python-heatclient


Es posible que tenga este problema si faltan algunos certificados en su system.eg en opensuse install ca-certificate-mozilla


Inorder para superar el problema de verificación ssl,

Esto es algo que he probado y trabajado. Recibía un error cuando intentaba instalar ansible, así que puse ansible en el nombre del paquete.

Esto le dice a pip que confíe en el host pypi.python.org desde el cual descargamos y que confíe en nuestro paquete.

instalación de pip --trusted-host pypi.python.org ansible

pip instala --trusted-host pypi.python.org --upgrade pip


Instalé pip 1.2.1 con easy_install y actualicé a la última versión de pip (6.0.7 en ese momento), lo que me permite instalar paquetes en mi caso.

easy_install pip==1.2.1 pip install --upgrade pip


La forma más sencilla que he encontrado, es descargar y utilizar la "CA de raíz EV EV High Assurance de DigiCert" de DigiCert en https://www.digicert.com/digicert-root-certificates.htm#roots

Puede visitar https://pypi.python.org/ para verificar el emisor del certificado haciendo clic en el ícono de candado en la barra de direcciones, o aumentar su credito geek usando openssl:

$ openssl s_client -connect pypi.python.org:443 CONNECTED(00000003) depth=1 /C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA verify error:num=20:unable to get local issuer certificate verify return:0 --- Certificate chain 0 s:/businessCategory=Private Organization/1.3.6.1.4.1.311.60.2.1.3=US/1.3.6.1.4.1.311.60.2.1.2=Delaware/serialNumber=3359300/street=16 Allen Rd/postalCode=03894-4801/C=US/ST=NH/L=Wolfeboro,/O=Python Software Foundation/CN=www.python.org i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA 1 s:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert High Assurance EV Root CA

El último valor de CN en la cadena de certificados es el nombre de la CA que necesita descargar.

Para un esfuerzo de una sola vez, haga lo siguiente:

  1. Descarga el CRT desde DigiCert
  2. Convertir el formato CRT a PEM
  3. Exporte la variable de entorno PIP_CERT a la ruta del archivo PEM

(la última línea supone que estás usando el shell bash) antes de ejecutar pip.

curl -sO http://cacerts.digicert.com/DigiCertHighAssuranceEVRootCA.crt openssl x509 -inform DES -in DigiCertHighAssuranceEVRootCA.crt -out DigiCertHighAssuranceEVRootCA.pem -text export PIP_CERT=`pwd`/DigiCertHighAssuranceEVRootCA.pem

Para hacer esto reutilizable, ponga DigiCertHighAssuranceEVRootCA.crt en algún lugar común y exporte PIP_CERT en consecuencia en su ~ / .bashrc.


Las respuestas a utilizar.

pip install --trusted-host pypi.python.org <package>

trabajo. Pero tendrás que comprobar si hay redirecciones o cachés que está golpeando. En Windows 7 con pip 9.0.1 , tuve que correr

pip install / --trusted-host pypi.python.org / --trusted-host pypi.org / --trusted-host files.pythonhosted.org / <package>

Usted puede encontrar estos con la bandera verbosa.


Las respuestas son bastante similares y un poco confusas. En mi caso, los certificados en la red de mi empresa fue el problema. Pude solucionar el problema usando:

pip install --trusted-host files.pythonhosted.org --trusted-host pypi.org --trusted-host pypi.python.org oauthlib -vvv

Como se ve aquí . El argumento -vvv se puede omitir si no se requiere una salida detallada


Nada en esta página funcionó para mí hasta que usé la opción --verbose para ver que quería acceder a files.pythonhosted.org en lugar de pypi.python.org:

pip install --trusted-host files.pythonhosted.org <package_name>

Así que verifique la URL en la que está fallando a través de la opción --verbose.


Para mí, el problema se solucionó creando una carpeta pip , con un archivo: pip.ini en C:/Users/<username>/AppData/Roaming/ por ejemplo:

C:/Users/<username>/AppData/Roaming/pip/pip.ini

Por dentro escribí:

[global] trusted-host = pypi.python.org pypi.org files.pythonhosted.org

Reinicié python, y luego pip permanentemente confié en estos sitios.


Para mí, ninguno de los métodos sugeridos funcionó: utilizando cert, HTTP, servidor de confianza.

En mi caso, el cambio a una versión diferente del paquete funcionó (paho-mqtt 1.3.1 en lugar de paho-mqtt 1.3.0 en este caso).

Parece que el problema era específico para esa versión del paquete.


Para resolver este problema de una vez por todas, puede verificar que tiene un archivo pip.conf .

Aquí es donde debería estar su pip.conf , de acuerdo con la documentation :

En Unix, el archivo de configuración predeterminado es: $HOME/.config/pip/pip.conf que respeta la variable de entorno XDG_CONFIG_HOME.

En macOS, el archivo de configuración es $HOME/Library/Application Support/pip/pip.conf si el directorio $HOME/Library/Application Support/pip existe otra cosa $HOME/.config/pip/pip.conf

En Windows, el archivo de configuración es %APPDATA%/pip/pip.ini .

Dentro de un virtualenv:

En Unix y macOS, el archivo es $VIRTUAL_ENV/pip.conf

En Windows, el archivo es: %VIRTUAL_ENV%/pip.ini

Tu pip.conf debe verse como:

[global] trusted-host = pypi.python.org

pip install linkchecker instaló el linkchecker sin quejas después de crear el archivo pip.conf .


Puede 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 la especificación del certificado raíz de su empresa no funciona, quizás la cURL funcione: http://curl.haxx.se/ca/cacert.pem

Debe utilizar un archivo PEM y no un archivo CRT. Si tiene un archivo CRT necesitará convertir el archivo a PEM

También revise: SSL Cert Verification .


Puede ignorar los errores de SSL configurando pypi.org y https://files.pythonhosted.org/ como hosts de confianza.

$ pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org <package_name>

Nota : En algún momento de abril de 2018, el Índice de Paquetes de Python se migró de pypi.python.org a pypi.org . Esto significa que los comandos de "servidor de confianza" que usan el dominio antiguo ya no funcionan.

Arreglo permanente

Desde el lanzamiento de pip 10.0, deberías poder solucionarlo de forma permanente simplemente actualizando pip :

$ pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org pip setuptools

O simplemente reinstalándolo para obtener la última versión:

$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

(... y luego ejecuta get-pip.py con el intérprete de Python relevante).

pip install <otherpackage> debería funcionar después de esto. Si no es así, tendrá que hacer más, como se explica a continuación.

Es posible que desee agregar los hosts de confianza y el proxy a su archivo de configuración .

pip.ini (Windows) o pip.conf (unix)

[global] trusted-host = pypi.python.org pypi.org files.pythonhosted.org

Soluciones alternativas (menos seguras)

La mayoría de las respuestas podrían plantear un problema de seguridad.

Dos de las soluciones que ayudan a instalar la mayoría de los paquetes de Python con facilidad serían:

  • Uso de easy_install : si es realmente vago y no quiere perder mucho tiempo, use easy_install <package_name> . Tenga en cuenta que algunos paquetes no se encontrarán o darán pequeños errores.
  • Uso de Wheel : descargue el paquete Wheel of the python y use el comando pip install wheel_package_name.whl para instalar el paquete.

Puede intentar omitir el error SSL utilizando http en lugar de https. Por supuesto, esto no es óptimo en términos de seguridad , pero si tiene prisa, debería hacer el truco:

pip install --index-url=http://pypi.python.org/simple/ linkchecker


Puedes intentar esto para ignorar "https":

pip install --index-url=http://pypi.python.org/simple/ --trusted-host pypi.python.org [your package..]


Recientemente enfrenté el mismo problema en Python 3.6 con Visual Studio 2015. Después de pasar 2 días, obtuve la solución y funcionó bien para mí.

Obtuve el error siguiente al intentar instalar numpy usando pip o desde visual studio. Recopilar numpy No se pudo obtener la URL https://pypi.python.org/simple/numpy/ : hubo un problema al confirmar el certificado ssl: [SSL: CERTIFICATE_VERIFY_FAILED] falla la verificación del certificado (_ssl.c: 748) - omitiendo No se pudo encontrar una versión que cumpla con el número de requisito (de las versiones:) No se encontró una distribución coincidente para numpy

Resolución:

Para el sistema operativo Windows

  1. abrir -> carpeta "% appdata%" Crear "pip" si no existe.
  2. En la carpeta pip crea el archivo "pip.ini".
  3. Editar archivo y escribir
    [global]
    trusted-host = pypi.python.org Guarde y cierre el archivo. Ahora instale usando pip / visual studio funciona bien.

Recientemente me encontré con este problema debido al filtro de contenido web de mi empresa que utiliza su propia Autoridad de certificación para que pueda filtrar el tráfico SSL. PIP no parece estar utilizando los certificados de CA del sistema en mi caso, produciendo el error que menciona. La degradación de PIP a la versión 1.2.1 presentó su propio conjunto de problemas más adelante, así que volví a la versión original que venía con Python 3.4.

Mi solución es bastante simple: use easy_install . O no comprueba los certificados (como la versión PIP antigua), o sabe usar los certificados del sistema porque siempre me funciona y puedo usar PIP para desinstalar paquetes instalados con easy_install.

Si eso no funciona y puede obtener acceso a una red o computadora que no tiene el problema, siempre puede configurar su propio servidor PyPI personal: ¿cómo crear un índice de repositorio pypi local sin espejo?

Casi lo hice hasta que intenté usar easy_install como último esfuerzo de zanja.



Tienes 4 opciones:

Usando un certificado como parámetro

$ pip install --cert /path/to/mycertificate.crt linkchecker

Usando un certificado en un pip.conf

Crea este archivo:

$HOME/.pip/pip.conf (Linux) %HOME%/pip/pip.ini (Windows)

y añade estas lineas:

[global] cert = /path/to/mycertificate.crt

Ignorando el certificado y utilizando HTTP

$ pip install --trusted-host pypi.python.org linkchecker

Ignorando el certificado y utilizando HTTP en un pip.conf

Crea este archivo:

$HOME/.pip/pip.conf (Linux) %HOME%/pip/pip.ini (Windows)

y añade estas lineas:

[global] trusted-host = pypi.python.org

Fuente


Tienes las siguientes posibilidades para resolver el problema con CERTIFICATE_VERIFY_FAILED :

  • Utilice HTTP en lugar de HTTPS.
  • Use --cert <trusted.pem> o la variable CA_BUNDLE para especificar un paquete CA alternativo.

    Por ejemplo, puede ir a la URL defectuosa desde el navegador web e importar el certificado raíz a su sistema.

  • Ejecute python -c "import ssl; print(ssl.get_default_verify_paths())" para verificar el actual (validar si existe).

  • OpenSSL tiene un par de entornos ( SSL_CERT_DIR , SSL_CERT_FILE ) que se pueden usar para especificar diferentes bases de datos de certificados PEP-476 .
  • Use --trusted-host <hostname> para marcar el host como confiable.
  • En Python use verify=False para requests.get (consulte: Verificación del certificado SSL ).
  • Utilice --proxy <proxy> para evitar la verificación de certificados.

Lea más en: Contenedor TLS / SSL para objetos de socket - Verificación de certificados .


Tuvo el mismo problema al tratar de pip install ftputil con ActivePython 2.7.8, ActivePython 3.4.1 y "stock" Python 3.4.2 en Windows 7 Enterprise de 64 bits. Todos los intentos fallaron con los mismos errores que OP.

Se resolvió el problema de Python 3.4.2 mediante la degradación a pip 1.2.1: easy_install pip==1.2.1 (consulte https://.com/a/16370731/234235 ). La misma solución también funcionó para ActivePython 2.7.8.

El error, publicado en marzo de 2013, aún está abierto: https://github.com/pypa/pip/issues/829 .


Una solución ( para Windows ) es crear un archivo llamado pip.ini en la carpeta %AppData%/pip/ (cree la carpeta si no existe) e inserte los siguientes detalles:

[global] cert = C:/certs/python_root.pem proxy = http://my_user@my_company.com:my_password@proxy_ip:proxy_port

... y luego podemos ejecutar la instrucción de instalación:

pip3 install PyQt5

Otra opción es instalar el paquete usando argumentos para el proxy y el certificado ...

$ pip3 install --proxy http://my_user@my_company.com:my_password@proxy_ip:proxy_port / --cert C:/certs/python_root.pem PyQt5

Para convertir los archivos de certificado *.cer al formato *.pem requerido, ejecute la siguiente instrucción:

$ openssl x509 -inform der -in python_root.cer -out python_root.pem

¡Espero que esto ayude a alguien!


para mí esto es porque anteriormente estoy ejecutando un script que configura el proxy (para fiddler), volviendo a abrir la consola o reiniciando el problema.


La respuesta de kenorb es muy útil (¡y genial!).
Entre sus soluciones, quizás esta sea la más simple: --trusted-host

Por ejemplo, en este caso puedes hacer

pip install --trusted-host pypi.python.org linkchecker

El archivo pem (o cualquier otra cosa) es innecesario.


Vaulstein respuesta de Vaulstein me ayudó.

No encontré el archivo pip.ini en mi PC. Así hizo lo siguiente.

  1. Fui a la carpeta AppData. Puede obtener la carpeta appdata abriendo el símbolo del sistema y escribiendo echo% AppData%

O simplemente escriba% AppData% en el explorador de Windows.

  1. Crea una carpeta llamada pip dentro de esa carpeta appdata.

  2. En la carpeta pip que acaba de crear, cree un archivo de texto simple llamado pip.ini

  3. Después de los siguientes ajustes de configuración en ese archivo, utilice un editor simple de su elección.

archivo pip.ini:

[list] format=columns [global] trusted-host = pypi.python.org pypi.org

Ahora debería ser bueno para ir