首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pyOpenSSL密码列表失败

pyOpenSSL密码列表失败
EN

Stack Overflow用户
提问于 2015-11-30 22:12:08
回答 1查看 1.6K关注 0票数 2

在Apache中,我成功地使用了以下OpenSSL密码设置:

代码语言:javascript
复制
SSLHonorCipherOrder on
SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM \
                EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 \
                EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 \
                EECDH EDH+aRSA \
                !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4"

我试图在python (Twisted)服务器上进行仿真,但是服务器不会提供任何具有指定的可比较密码列表的页面。我做错了什么?这是蟒蛇(本质上.)

代码语言:javascript
复制
     from OpenSSL import SSL
....
     httpSslContext = ssl.DefaultOpenSSLContextFactory(...)
     ctx = httpSslContext.getContext()                
     ctx.set_options( SSL.OP_CIPHER_SERVER_PREFERENCE )                 
     ctx.set_cipher_list( "EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:EDH+aRSA:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4" )   
...

如果我将密码列表更改为一些简单的东西,比如"RC4-SHA",或者更复杂一些的东西,比如"DEFAULT:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4".,它就能工作。我设置了一些其他选项,例如例外协议,但我不知道这是否相关.

请注意,这里使用的密码列表相同:Python Paste SSL server with TLSv1.2 and Forward Secrecy

我正试图达到同样的结果,出于同样的原因,但遇到了一些问题。我想知道现在是否存在pyOpenssl版本的差异?EECDH密码不允许吗?我也不能使用ctx.set_tmp_ecdh()。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-03 16:02:53

问题确实在于无法使用context.set_tmp_ecdh(),这是因为没有安装新版本的pyOpenSSL。见:ecdh() not defined in pyOpenSSL?。解决了这个问题。

当您指定一个密码列表时,实际上并不是最终实现的密码。connection.get_cipher_list() (我在context.set_info_callback()函数中调用了它)将在考虑其他内容时显示实际结果。

较早版本的pyOpenSSL不能使用椭圆曲线密码。因此,它们是不可用的,而且我喜欢的密码列表在某些浏览器上也不起作用。

另一方面,Apache没有这个问题,允许使用这些密码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34008974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档