Eu estou tentando instalar um módulo Python:

pip install -U channels

A saída tem:

...
Complete output from command python setup.py egg_info:
Download error on https://pypi.python.org/simple/incremental/: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749) -- Some packages may not be found!
Couldn't find index page for 'incremental' (maybe misspelled?)
Download error on https://pypi.python.org/simple/: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749) -- Some packages may not be found!
...

Usando um navegador para ir para https://pypi.python.org/simple/ ou https://pypi.python.org/simple/incremental/ funciona bem.

No entanto, quando eu testo o link usando openssl, há um problema:

(virtualenv) user@host:~/Documents/virtualenv$  openssl s_client -connect pypi.python.org:443  CONECTADO (00000003)
profundidade = 1 / C = US / O = DigiCert Inc / OU = www.digicert.com / CN = Servidor de validação estendida SHA2 DigiCert CA  verify error: num = 20: não é possível obter o certificado do emissor local 
 verificar retorno: 0  ---
Cadeia de certificados
 0 s: / businessCategory = Organização privada / 1.3.6.1.4.1.311.60.2.1.3 = EUA / 1.3.6.1.4.1.311.60.2.1.2 = Delaware / serialNumber = 3359300 / rua = 16 Allen Rd / postalCode = 03894 -4801 / C = EUA / ST = NH / L = Wolfeboro / O = Fundação de Software Python / CN = www.python.org
   i: / C = US / O = DigiCert Inc / UO = www.digicert.com / CN = Servidor de validação estendida SHA2 DigiCert CA
 1 s: / C = US / O = DigiCert Inc / UO = www.digicert.com / CN = Servidor de validação estendida SHA2 DigiCert CA
   i: / C = US / O = DigiCert Inc / OU = www.digicert.com / CN =  CA raiz do EV de alta segurança DigiCert  ---
... 

Mas a parte estranha é que eu tenho o DigiCert High Assurance EV Root CA na seção System Roots do Keychain e o certificado é válido.

Meu palpite é que a biblioteca SSL usada por pip não usa o Keychain. Em vez disso, ele usa openssl. Desde a openssl não tem o DigiCert High Assurance EV Root CA certificado, pip não consegue se conectar.

Como posso adicionar esse certificado ao repositório de certificados da CA de openssl?

Eu estou no macOS Sierra.

Utku
fonte