【问题标题】:Disable weak ciphers with cherrypy (python 2)使用cherrypy(python 2)禁用弱密码
【发布时间】:2016-04-22 08:06:01
【问题描述】:

我将 Cherrypy 3.8.0 与 Python 2 一起使用,以通过 pyOpenSSL 使用 SSL/TLS。

我想禁用 SSL3 以避免 POODLE(或其他弱密码)。

这是我目前所拥有的:

  server_config={
          'server.socket_port': 443,
          'server.ssl_module':'pyopenssl',
          'server.ssl_certificate':'/path/myserver.crt',
          'server.ssl_private_key':'/path/myserver.key',
      }

这类似于this question,但适用于 python 2 和 pyopenssl。

如何指定或排除特定密码?谢谢!

【问题讨论】:

    标签: python python-2.7 ssl openssl cherrypy


    【解决方案1】:

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

    import cherrypy
    from OpenSSL import SSL
    
    ctx = SSL.Context(SSL.SSLv23_METHOD)
    ctx.set_options(SSL.OP_NO_SSLv2 | SSL.OP_NO_SSLv3)
    
    ...
    
    server_config = {
        'server.socket_host': '0.0.0.0',
        'server.socket_port': 443,
        'server.ssl_context': ctx
    }
    
    cherrypy.config.update(server_config)
    

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

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

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

    ciphers = {
        'DHE-RSA-AE256-SHA',
        ...
        'RC4-SHA'
    }
    
    ctx.set_cipher_list(':'.join(ciphers))
    

    如果您使用来自web.wsgiserver 模块的CherryPyWSGIServer,您可以使用

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

    最后,这里有一些您可能想查看的资料(提出类似问题):

    【讨论】:

    • 谢谢迈克尔。但我收到一条错误消息:“模块”对象没有属性“SSLContext”。稍微搜索一下,我需要 python 2.7.9,但我的发行版现在固定在 2.7.6。 :/ 所以如果可能的话,我仍然需要一个 2.7.6 的答案。
    • 抱歉,你可能没有得到我的更新——从另一个问题移植它时出错:ctx = SSL.SSLContext -> ctx = SSL.Context(SSL.SSLv23_METHOD)
    • 不幸的是,这仍然不适合我。具体来说,我收到一个显示“ssl_error_no_cypher_overlap”的浏览器错误
    • 您使用的是哪个浏览器?您可能会发现此链接(来自我的回答)很有用:stackoverflow.com/a/29304038/4760801
    • 我正在使用最新的 Firefox 进行测试。不过有趣的链接。听起来最好升级到 2.7.9 并获得 SSL 升级,除非我想覆盖 pyopenssl。
    猜你喜欢
    • 2016-04-16
    • 2017-04-02
    • 1970-01-01
    • 2012-12-05
    • 1970-01-01
    • 1970-01-01
    • 2020-06-30
    • 2018-08-24
    • 2022-01-03
    相关资源
    最近更新 更多