2016-05-18 49 views
6

sto avendo problemi di ottenere il supporto TLS v1.2 per la mia installazione di Python sul mio Mac.AttributeError: 'modulo' oggetto non ha attributo 'PROTOCOL_TLSv1_2' con Python 2.7.11

Questa è la mia versione OpenSSL:

openssl version 
OpenSSL 1.0.2h 3 May 2016 

Ed ecco la mia versione di Python:

python --version 
Python 2.7.11 

Questo è come mi sto testando:

>>> import ssl 
>>> ssl.PROTOCOL_TLSv1_2 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
AttributeError: 'module' object has no attribute 'PROTOCOL_TLSv1_2' 

La lettura di questo: https://docs.python.org/2/library/ssl.html dice:

Some behavior may be platform dependent, since calls are made to the operating system socket APIs. The installed version of OpenSSL may also cause variations in behavior. For example, TLSv1.1 and TLSv1.2 come with openssl version 1.0.1.

così ho i requisiti per il supporto tlsv1.2 con la mia installazione di OpenSSL 1.0.2h.

Qualcuno ha qualche idea?

+2

Verificare di aver installato non solo la nuova versione di openssl ma che effettivamente la si utilizza all'interno di python, ad esempio "import ssl \ nprint ssl.OPENSSL_VERSION' –

+1

Sì, questo era il problema. Ho reinstallato con 'brew install python --with-brewed-openssl'. – gprime

+0

gprime, puoi scriverlo come risposta? –

risposta

2

Il problema era che la versione di OpenSSL pitone stava usando non supportano TLS 1.2.

ho installato OpenSSL con birra e poi reinstallato pitone dicendogli di usare OpenSSL ho installato con birra:

$ brew update 
$ brew install openssl 
$ brew install python --with-brewed-openssl 

Poi tutto ha funzionato!

+1

Qualsiasi soluzione senza installare l'ultima versione di Python? –

+0

Scusa, non che io sappia. – gprime

+1

Esiste una soluzione simile per ubuntu, @gprime? Ho lo stesso identico problema, ma con Django su Ubuntu. – ifconfig

Problemi correlati