Niedawno musiałem zakończyć połączenie TLSv1.2 z wzajemnie uwierzytelnionym SSL i nie było to na wanilii 2.7.8. Miałem zamiar zacząć boleśnie przenosić moją intensywną aplikację i/o do Pythona 3, zmieniając każdy ciąg na bajty iz powrotem na recv/send. To będzie ssać.
Następnie znalazłem PEP466. Możesz łatwo zastosować łatę od PEP466 (Google it) do wersji 2.7.7 lub 2.7.8, aby uzyskać działanie TLS 1.1 i TLS 1.2.
Łatka dla PEP 466 jest @http://bugs.python.org/file36423/ssl-backport.diff
Również trzeba będzie następującą poprawkę naprawić Unicode związane błąd, który powoduje segfault przy konstruowaniu błędy w kodzie SSL:
ta poprawka jest @http://bugs.python.org/file36017/unicode_fromformat.patch
Ponadto, po zastosowaniu poprawki, należy wykonać następujące czynności technicznie przed konfiguracji i kompilacji:
~/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
Następnie można skonfigurować & make & & dokonać instalacji i powinno być dobrze, aby przejść w/TLSv1.1 i 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 jest teraz działa dobrze dla mnie, więc nie mam do portu gigantyczną aplikację Pythona 3.
Tak czy inaczej, treść na stronie PEP jest mylące, to sprawia, że dźwięk podobnie jak 2.7.9 w grudniu ma mieć włączone to wsparcie (?), ale nie jestem pewien, czy jest to poprawne, czy jest to tylko ręczne obejście, dopóki nie przeniesiesz swojego kodu do Pythona 3. Przypuszczam, że tak naprawdę nie jest materia.
Czy możesz podać link o oświadczeniu opiekunów Pythona, że nie ma on wstecznego TLS> 1.0 do Pythona 2.7? Dzięki – Tian
Czy przeczytałeś mój poprzedni link? :) To właśnie tam: http://bugs.python.org/issue16692#msg189879 –
Mogło być powiedziane, ale prawda jest taka, że istnieje obsługa TLS 1.1 i 1.2 dla Pythona> 2.7.8. Zobacz "Nowość w wersji 2.7.9 "uwaga na dokumentacji ssl: https://docs.python.org/2/library/ssl.html#ssl.PROTOCOL_TLSv1_2 – guival