pyOpenSSL密码列表失败

2024-05-12 01:36:33 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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)服务器中模拟这一点,但是服务器不会为任何指定了类似密码列表的页面提供服务。我做错什么了?这是Python(本质上……)

^{pr2}$

如果我将密码列表更改为“RC4-SHA”之类的简单代码,或者甚至更复杂一些的内容,如“DEFAULT:!阿努尔:!伊努尔:!低:!3DES:!MD5:!经验:!PSK:!SRP:!DSS:!RC4”。我设置了一些其他选项,例如例外协议,但我不知道是否相关。。。在

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

出于同样的原因,我也在努力取得同样的结果,但是遇到了一些问题。我现在想知道pyOpenssl是否存在版本差异?EECDH密码是不允许的吗?我不能用ctx.set U tmp U ecdh设置()要么。。。在


Tags: 服务器密码列表apacheecdsamd5srprc4
1条回答
网友
1楼 · 发布于 2024-05-12 01:36:33

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

当您指定一个密码列表时,它实际上并不是最终实现的密码。connection.get_cipher_列表()(我打电话给context.set_info_回调()函数)将在考虑其他所有因素后显示实际结果。在

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

另一方面,Apache没有这个问题,并且允许使用现成的密码。在

相关问题 更多 >