python-3.x - Python SSL/TLS - Python 3.8 上没有共享密码,但在 Python 3.6 上工作
问题描述
我的服务器可以在 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)时出现。客户端可以使用任何类型的证书。
解决方案
... NO_SHARED_CIPHER ...
我怀疑它与服务器或客户端证书有关。
这是密码选择的问题,密码选择几乎与证书无关,至少如果证书类型仍然相同,即 ECC 与 RSA。而且我假设您在工作和非工作情况下仍然使用相同的证书或至少相同的证书类型。
您的客户端更有可能尝试使用一些基于 RC4 或 3DES 的密码,这些密码如今已被认为已过时,因此在使用较新版本的软件堆栈(即 Python+OpenSSL)时服务器不再支持。
推荐阅读
- asp.net-mvc - WebDeploy 包包含个人文件夹路径
- javascript - Chrome 在 Angular 中使用 resumablejs 上传大于 1.5 GB 的文件时崩溃
- php - PHP 中的 Rest API:{'error': "Missing 'inputs' or 'instances' key"}
- firebase - 无法在 Firebase 中创建新用户属性
- amazon-web-services - AWS EC2 Autoscaling Target Tracking 策略如何扩展?
- javascript - [JS/HTML/PHP]刷新页面后的特定div
- c# - DryIoc:将请求范围服务的代理注入单例
- javascript - 为什么 window.getSelection() 不工作?它不会占用文本
- javascript - 如何通过全局 .scss 文件而不是 Vue 中的 main.js 导入引导程序
- wordpress - WordPress:所有帖子都在呈现,而不是仅在分类页面上呈现分配的分类帖子