2016-01-12 6 views

Antwort

6

SSL3 zu deaktivieren, sollten Sie die ssl_context Variable selbst, anstatt die Standardeinstellung zu übernehmen. Hier ist ein Beispiel mit Pythons eingebautem ssl Modul (anstelle des eingebauten cherrypy SSL-Moduls).

import cherrypy 
import ssl 

ctx = ssl.SSLContext(ssl.PROTOCOL_SSLv23) 
ctx.options |= ssl.OP_NO_SSLv2 
ctx.options |= ssl.OP_NO_SSLv3 

cherrypy.config.update(server_config) 

, wo in diesem Fall aus dem SSLOpenSSL Modul ist.

Es ist erwähnenswert, dass in Python 3.2.3 das ssl Modul bestimmte schwache Ziffern standardmäßig deaktiviert.

Darüber hinaus können Sie gezielt alle Chiffren gesetzt Sie mit

wollen
ciphers = { 
    'DHE-RSA-AE256-SHA', 
    ... 
    'RC4-SHA' 
} 

ctx.set_ciphers(':'.join(ciphers)) 

Wenn Sie das CherryPyWSGIServer vom web.wsgiserver Modul verwenden, würden Sie die Standard-Verschlüsselungen mit

CherryPyWSGIServer.ssl_adapter.context.set_cipher_list(':'.join(ciphers)) 

Hier wird eingestellt ist Teil der Dokumentation, die das oben genannte detailliert: http://docs.cherrypy.org/en/latest/pkg/cherrypy.wsgiserver.html#module-cherrypy.wsgiserver.ssl_builtin

Schließlich, hier sind einige Quellen (fragen sim ilar Fragen), die Sie betrachten möchten:

+0

Hallo Michael, leider muss ich Python builtin verwenden ' ssl' Modul, mit CherryPy, nicht 'pyopenssl' - welches' OpenSSL' Modul bereitstellt. Ich habe Ihre Lösung ausprobiert, aber mit 'openssl s_client ... -ssl3 'überprüft, verbindet sie sich mit ssl3, was ich sicherstellen muss, dass sie deaktiviert ist. – gc5

+0

@fbrundu - Mein Fehler, ich sah dich Python3 sagen, aber ich gab dir trotzdem die Python2 Antwort! Ich habe die obige Antwort bearbeitet. Lass mich wissen ob es funktioniert. –

+1

Es tut mir leid, aber es funktioniert nicht. Laufen mit 'openssl s_client ... -ssl3' gibt es mir immer' Protokoll: SSLv3' .. Könnte es sein, dass 'ssl_context' nur mit' pyOpenSSL' funktioniert, das nicht mit cherrypy auf Python3 funktioniert? – gc5