SSL套接字不支持错误



我在linux centos 6.6上运行龙卷风webserver的安全websocket连接。我使用Qt/c++客户端通过打开一个类似"wss://191.23.4.56/etr/job"的url使用QWebsocket连接。我得到的错误是,"此平台不支持SSL套接字"这个错误是关于什么的?

当URL方案为wss, QSslSocket::supportsSsl()返回false时,QWebSocket::open()打印错误信息"SSL sockets are not supported in this platform"

静态成员函数QSslSocket::supportsSsl():

如果平台支持SSL则返回true;否则,返回false。如果平台不支持SSL,则套接字将在连接阶段。

这是你的主要问题。现在我们需要找出为什么Qt认为平台不支持SSL。

如果你下载Qt作为二进制包,函数supportsSsl()尝试动态加载所需的库libssllibcrypto

如果这些库不能被加载,函数supportsSsl()返回false

libssl可能没有安装在您的系统中。如果你能在你的系统中找到二进制库,但它们没有被Qt加载,那么你的二进制libssl和/或libcrypto可能与二进制Qt不兼容。

为了避免这样的问题,你可以构建你自己的Qt,例如,有一个新的指令如何构建Qt-5.5.1。注意-openssl-linked配置开关的技巧。它支持将OpenSSL库集成到Qt5库中,而不是在运行时动态加载它们。

相关内容

  • 没有找到相关文章