使用cherrypy(python 2)禁用弱密码
我使用带有Python 2的Cherrypy 3.8.0来使用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。
如何指定或排除特定密码?谢谢!
1 个答案:
答案 0 :(得分:6)
要禁用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))
如果您正在使用CherryPyWSGIServer
模块中的web.wsgiserver
,则可以使用
CherryPyWSGIServer.ssl_adapter.context.set_cipher_list(':'.join(ciphers)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
2018-02-05 编译开源C或者C++项目最好像执行如下命令,否则可能会有这种奇葩问题