Recentemente ho dovuto terminare una connessione TLSv1.2 con SSL autenticati reciprocamente e questo non era il caso di vaniglia 2.7.8. Stavo per iniziare a trasferire dolorosamente la mia rete i/o un'applicazione intensiva a Python 3, cambiando ogni stringa in byte e viceversa per recv/send. Stava per succhiare.
Quindi ho trovato PEP466. È possibile applicare la patch da PEP466 (Google it) a 2.7.7 o 2.7.8 abbastanza facilmente per far funzionare TLS 1.1 e TLS 1.2.
La patch per PEP 466 è @http://bugs.python.org/file36423/ssl-backport.diff
Inoltre, sarà necessario il seguente patch per correggere un bug relativo Unicode che provoca un segfault quando si costruisce errori nel codice SSL:
questa patch è @http://bugs.python.org/file36017/unicode_fromformat.patch
Inoltre, una volta che si applica la patch, si dovrebbe tecnicamente effettuare le seguenti operazioni prima di configurare e la compilazione:
~/Python-2.7.8$ python3 ./Tools/ssl/make_ssl_data.py /usr/include/openssl/ _ssl_data.h
~/Python-2.7.8$ mv _ssl_data.h Modules/_ssl_data.h
È quindi possibile configurare & & fare & & fare installazione e dovrebbe essere buono per andare w/TLSv1.1 e TLSv1.2.
~/Python-2.7.8$ ./configure --enable-unicode=ucs2 --prefix=/opt/Python-2.7.8/ --with-pth && make -j && sudo make install
TLS 1.2 sta lavorando bene per me, quindi non ho in porto un'applicazione gigantesca per Python 3.
In ogni caso, il testo sulla pagina PEP è confusa, si rende il suono ad esempio il 2.7.9 di dicembre dovrebbe avere questo supporto incluso (?) ma non sono sicuro se questo è accurato o se questo è solo una soluzione manuale fino a che non porti il tuo codice a Python 3. Suppongo che non sia realmente importa.
Puoi fornire un collegamento sulla dichiarazione dei manutentori Python di non backport TLS> 1.0 a Python 2.7? Grazie – Tian
Hai letto il mio link precedente? :) Esatto: http://bugs.python.org/issue16692#msg189879 –
Potrebbe essere stato detto, ma la verità è che c'è il supporto per TLS 1.1 e 1.2 per python> 2.7.8. Vedi il "Nuovo nella versione 2.7.9 "note sulla documentazione di ssl: https://docs.python.org/2/library/ssl.html#ssl.PROTOCOL_TLSv1_2 – guival