我在 python 2.7/Win XP 上与 IDEA-CBC-SHA 建立 ssl 连接时遇到问题。
这是代码:
ciphers = "IDEA-CBC-SHA"
ssl_sock = ssl.wrap_socket(self.sock,
keyfile = keyfile,
certfile = certfile,
ciphers = ciphers)
ssl_sock.connect((address, port))
这是结果:
SSLError: _ssl.c:319: No cipher can be selected.
当我查询 openssl 时,我将 IDEA-CBC-SHA 视为列出的密码之一
OpenSSL> ciphers
DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:AES256-SHA:EDH-RSA-DES-CBC3-SHA:EDH-DSS-DES-CBC3-SHA:DES-CBC3-SHA:DES-CBC3-MD5:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA:AES128-SHA:IDEA-CBC-SHA:IDEA-CBC-MD5:RC2-CBC-MD5:RC4-SHA:RC4-MD5:RC4-MD5:EDH-RSA-DES-CBC-SHA:EDH-DSS-DES-CBC-SHA:DES-CBC-SHA:DES-CBC-MD5:EXP-EDH-RSA-DES-CBC-SHA:EXP-EDH-DSS-DES-CBC-SHA:EXP-DES-CBC-SHA:EXP-RC2-CBC-MD5:EXP-RC2-CBC-MD5:EXP-RC4-MD5:EXP-RC4-MD5
我测试过其他密码(DES-CBC3-SHA、RC4-SHA、AES256-SHA、AES128-SHA),它们都运行良好。
知道为什么我的 ssl 连接可能因该特定密码而失败吗?
有没有办法禁用(然后启用)密码?
谢谢!
最佳答案
Any idea why my ssl connection might be failing for this specific cipher?
可能你连接的服务器不支持IDEA。数据包捕获将证实这一点。
编辑:在 ssl 连接中,客户端建议它愿意使用的密码选项列表。服务器从该列表中选择一个服务器认为可接受的选项。如果服务器不喜欢客户端提出的任何选项,则连接将失败,因为服务器无法选择密码套件。
关于python - 无法选择密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4617113/