【发布时间】:2022-08-06 04:03:39
【问题描述】:
从尝试发出 HTTPS 请求的 python 应用程序中,我遇到了一个我很难理解的错误:
[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:1129)
我认为这来自 OpenSSL。但是除了握手失败之外,它并没有告诉我问题是什么。 IE:它没有告诉我握手失败的原因或它的哪一步失败。
谷歌上的各种链接都可以尝试,但没有给出它们可能起作用的理由。我已经尝试过它们,但到目前为止没有任何效果。基于这些结果,我尝试过:
- 升级中
certifi - 在 mac python 安装目录中运行证书安装脚本
- 升级python版本
有什么方法可以获取有关此错误的更多信息?
-
这是完整的错误吗?
-
@ewong 那里有一个 python 堆栈跟踪,但我怀疑它在源自 openssl 的错误的上下文中是否有帮助(用 c 编写)
-
握手失败可以是任何事情,但通常与证书验证无关。因此,用 certifi 或类似的东西做任何事情都无济于事。它可能没有共享密码或协议版本,可能需要客户端证书,可能是服务器根本不使用 SSL ...
-
@SteffenUllrich 是的,这就是为什么我希望有一种方法可以从 OpenSSL 中获取有关原因的更多信息
-
@PhilipCouling:通常不会。服务器正在发送 TLS“警报握手失败”,客户端没有从服务器获得有关原因的更多详细信息。也许可以在服务器日志中找到信息。