当前位置:  开发笔记 > 编程语言 > 正文

如何使用cherrypy builtin ssl模块禁用SSL3和弱密码(python 3)

如何解决《如何使用cherrypybuiltinssl模块禁用SSL3和弱密码(python3)》经验,为你挑选了1个好方法。

我已经使用Python 3配置了Cherrypy 3.8.0以使用SSL/TLS.但是,我想禁用SSL3以避免POODLE.我搜索了文档,但我不确定如何实现它.

我正在使用cherrypy/python内置ssl模块,而不是pyOpenSSL我在Python 3下无法使用的模块.



1> Michael Reca..:

要禁用SSL3,您应该ssl_context自己设置变量,而不是接受默认值.这是使用Python的内置ssl模块(代替内置的cherrypyssl模块)的示例.

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)

在这种情况下,SSL来自OpenSSL模块.

值得注意的是,从Python 3.2.3开始,该ssl模块默认禁用某些弱密码.

此外,您可以专门设置所需的所有密码

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

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

如果您使用的CherryPyWSGIServerweb.wsgiserver模块,则可以设置默认密码

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

以下是详细说明上述内容的文档的一部分:http://docs.cherrypy.org/en/latest/pkg/cherrypy.wsgiserver.html#module-cherrypy.wsgiserver.ssl_builtin

最后,您可能需要查看以下内容(询问类似问题):

如何阻止SSL协议支持TLS?

https://review.cloudera.org/r/4739/diff/

http://roadha.us/2014/10/disable-sslv3-avoid-poodle-attack-web-py/

http://blog.gosquadron.com/use-tls

http://www.experts-exchange.com/questions/28073251/Disable-weak-SSL-cipher-on-CherryPy-pyOpenSSL-Windows-2008-Server.html

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有