【发布时间】:2015-11-30 22:12:08
【问题描述】:
在 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(本质上是……)
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()...
【问题讨论】:
标签: python apache openssl pyopenssl