qt openssl问题,如何进一步调试?

问题描述 投票:0回答:1

我在部署的应用程序上收到奇怪的 SSL 错误消息,不是每条消息都收到,但绝对是太频繁了。 Qt 中的消息如下:

Error while reading: error:1C80006E:Provider routines::invalid tag

我将负责的线路定位为 这里这里

我的问题是:有没有办法在 qt 和 openSSL 中启用高级调试选项,以便我可以看到交换的消息和/或 SSL 内部错误?

关于我已经尝试过的一些附加信息:

  • 无需 SSL 即可进行通信。但我们显然不安全
  • 不同的 Qt 版本,从 5.11 到最新的 6.x。
  • 负责加密的不同服务器软件,从 AWS Classic Load Balancer 到 Nginx
  • 不同的物理连接,通过网络或环回
  • 不同的密码,甚至一些甚至不应该带有失败标签的密码。
  • 客户端中的操作系统不同,从 Ubuntu 16 到 Debian 12。它在 Ubuntu 16 中工作,在 Debian 12 上不行。 OpenSSL 从 UB16 更改为 DEB12(1.0.x 与 3.x)。我认为这缩小了问题范围,但我不能简单地永远降级,我必须找到确切的问题。

更新: 结果发现,在

ossl_gcm_get_ctx_params
code)内,AEAD标签长度为0,因此失败。对于四种不同的情况,它因相同的错误而失败,所以很难理解...发现通过使用
LD_PRELOAD
并重新编译 openSSL...还不明白这意味着什么,但感觉像是一个进步:D

qt debugging openssl
1个回答
0
投票

已解决: 应用程序中 openssl 的另一个用法是影响 Qt 的 openssl 使用。在内部使用另一个库是最简单的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.