para mac descargar python macos ssl truststore

descargar - ¿Cómo hacer que Python use certificados de CA de Mac OS TrustStore?



install python 2.7 mac (4)

Como actualización y punto de datos, me encontré con este problema al ejecutar Python 3.7.0 en macOS 10.13.4:

$ ipython Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 26 2018, 23:26:24) Type ''copyright'', ''credits'' or ''license'' for more information IPython 7.0.1 -- An enhanced Interactive Python. Type ''?'' for help. In [1]: import bokeh.sampledata In [2]: bokeh.sampledata.download() Using data directory: /Users/me/.bokeh/data ... SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1045)

Las instrucciones para resolver el problema se encuentran en /Applications/Python/ 3.7/ReadMe.rtf

Siguiendo la sugerencia y ejecutando /Applications/Python/ 3.7/Install/ Certificates.command solucionó el problema:

Desde la terminal:

$ /Applications/Python/ 3.7/Install/ Certificates.command

Reiniciando IPython ...

$ ipython >>> import bokeh.sampledata >>> bokeh.sampledata.download() Using data directory: /Users/me/.bokeh/data Downloading: CGM.csv (1589982 bytes) 1589982 [100.00%] ...

Necesito usar certificados raíz de acceso directo en la intranet de la empresa y cargarlos en Mac OS TrustStore (KeyChain) resuelve el problema para todos los navegadores y aplicaciones GUI.

Parece que funciona incluso con la versión de curl que se envía con Mac OS X, pero no funciona con python , incluso la versión que se envía con Mac OS 10.12 Sierra (Python 2.7.10)

Aún así, parece que sería golpeado por:

urllib2.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)>

¿Como puedo resolver esto?

Debido a que encuentro este problema en muchas y muchas herramientas de Python, realmente apreciaría si encontrara una manera de evitarlo sin tener que parchearlas.

Proporcionar el certificado de CA personalizado no es una opción porque no puedo parchar decenas de herramientas de Python que utilizo.

La mayoría de las herramientas están usando la biblioteca de requests , pero hay algunas que están usando el soporte nativo de SSL en Python directamente.


Esto también es un problema en Python 3.6 con MacOS Sierrra. Sé que su caso de uso es diferente. Pero me topé con este hilo al investigar este problema. Así que si alguien también tiene este artículo, vale la pena echarle un vistazo:

http://www.cdotson.com/2017/01/sslerror-with-python-3-6-x-on-macos-sierra/

En pocas palabras : Python 3.6 ya no se basa en openSSL de MacOS. Viene con su propio paquete openSSL y no tiene acceso a los certificados raíz de MacOS.

Tienes dos opciones:

Ejecuta un comando de instalación incluido con Python 3.6

cd /Applications/Python/ 3.6/ ./Install/ Certificates.command

o

Instala el paquete certifi

Escogí la primera opción y funcionó.


Para mí /Applications/Python/ 3.6/./Install/ Certificates comando /Applications/Python/ 3.6/./Install/ Certificates falla en la instalación de certifi de pip. Estoy en mac High Sierra y uso python3, así que pip falla un poco y tengo que usar pip3 en su lugar.

Así que aquí lo que hice:

  1. pip3 install --update certify manualmente la pip3 install --update certify en un shell
  2. Elimine la línea certifi de instalación del script de comando
  3. Reran el guión y todo estuvo bien.

Tenga en cuenta que terminará con un enlace simbólico cert.pem en: /Library/Frameworks/Python.framework/Versions/3.6/etc/openssl/


Si coloca los certificados adicionales en un archivo de paquete PEM, puede usar estas dos variables de entorno para sobrescribir los almacenes de certificados predeterminados utilizados por Python openssl y solicitudes.

SSL_CERT_FILE=/System/Library/OpenSSL/cert.pem REQUESTS_CA_BUNDLE=/System/Library/OpenSSL/cert.pem

Tenga en cuenta que este archivo no existe, debe crearlo usted mismo.