如何修复 SSL 问题 SSL_CTX_use_certificate:Python Zeep 上的 ca md 太弱

新手上路,请多包涵

我的代码之前一直在工作,直到每当我向 Frontierlink Web 服务发出 SOAP 请求时出现此错误。

 File "/home/venv/lib/python2.7/site-packages/OpenSSL/_util.py", line 54, in exception_from_error_queue
raise exception_type(errors)

OpenSSL.SSL.Error: [(‘SSL routines’, ‘SSL_CTX_use_certificate’, ‘ca md too weak’)]

我是否需要重新生成我用来连接的 pem 文件,或者问题出在我用来生成 pem 文件的 .p12 文件上?

如果您需要有关我的问题的更多信息,请告诉我。

笔记:

我使用的 OpenSSL 版本是:OpenSSL 1.0.2k-fips

先感谢您!

原文由 John Dollosa 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.6k
2 个回答

您收到的错误消息表明您使用的证书是使用 md5 哈希签名的。

OpenSSL 1.1.0 引入了一个称为 安全级别 的新特性。

1 的默认设置将导致以下(我强调):

安全级别对应于至少 80 位的安全性。提供低于 80 位安全性的任何参数均被排除在外。因此,短于 1024 位的 RSA、DSA 和 DH 密钥以及短于 160 位的 ECC 密钥是被禁止的。所有出口密码套件都被禁止,因为它们都提供不到 80 位的安全性。禁止使用 SSL 版本 2。 任何对 MAC 使用 MD5 的密码套件也是被禁止的

您可能需要重新生成证书并使用更强的哈希来签名,例如 SHA1

OpenSSL Users 的论坛帖子来看,这个问题现在可能正在发生,因为您尝试连接的服务已经升级了他们的 OpenSSL 版本,并且它现在拒绝您的证书。

原文由 Serdalis 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果你像我一样,试图通过加密的 HTTPS 连接在你的 raspberrypi 上设置 Flask 端点服务器并遇到与 OP 相同的错误,默认 raspbian 操作系统上提供的 python 库(Flask 和 pyOpenSSL)太旧了

在撰写本文时,我使用的是 Raspbian 9 (stretch),python 3.8,默认库版本是 Flask==0.12.1, pyOpenSSL==16.2.0

我通过安装最新的 Flask==1.1.1 和 pyOpenSSL==19.1.0 修复了我遇到的与 OP 相同的错误

不确定我的回答是否有帮助,但只是把它扔在那里..

原文由 dian jin 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题