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 SSL
OpenSSL
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:
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
@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. –
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