【发布时间】:2020-04-07 13:10:44
【问题描述】:
我的服务器可以在 Python 3.6 或 Python 3.8 上运行。问题似乎是客户端。
如果我在 Python 3.6 上运行客户端,则 TLSv1.2 可以正常工作。但是,如果我在 Python 3.8 上运行相同的客户端代码,我会在服务器上获得 NO_SHARED_CIPHER 而在客户端上获得 SSLV3_ALERT_HANDSHAKE_FAILURE。
我怀疑它与服务器或客户端证书有关。
更新:我创建了一些新的服务器和客户端证书来试验:ed25519、rsa 和 secp256k1。据我所见,上述问题仅在服务器证书为secp256k1 并且客户端和服务器都运行 Python 3.8(因此使用 TLSv1.3)时出现。客户端可以使用任何类型的证书。
【问题讨论】:
-
这可能意味着服务器没有私钥,这反过来又意味着它找不到密码套件,因为所有安全套件都需要私钥。
标签: python-3.x sockets ssl openssl