更新:似乎 do_handshake 正在重置密码列表
诚然,这是一个非常具体的场景,但也许有人会有想法。我试图强制服务器只接受 RC4-SHA(仅出于调试原因)。我的代码看起来像:
ctx.set_cipher_list('RC4-SHA')
self.connection = SSL.Connection(ctx, self.connection)
print self.connection.getpeername(), self.connection.get_cipher_list()
根据打印输出,一切正常,并且确实使用 RC4-SHA 建立了连接。但是,查看 Wireshark,我可以看到服务器回复了另一个套件 (TLS_RSA_WITH_AES_128_CBC_SHA (0x002f))。不用说,客户端提出,TLS_RSA_WITH_RC4_128_SHA (0x0005),所以没有理由不使用它。
我正在使用 Python 2.7、pyOpenSSL 0.13、OpenSSL 1.0.1e。我正在处理的代码是 mitmproxy 的一部分。
有任何想法吗?