1、根据报错提示,问题出现的原因就是缺少加密的手段,因为HTTPS 协议在 TCP 和 HTTP 网络层之间加入了 SSL/TLS 安全协议,使得报文能够加密传输。出现问题的原因也就是没有提供对HTTP加密的工具,从而无法进行HTTPS通信。
2、解决办法:
首先通过调试语句查看自己QT所使用的的openssl版本。
#include <QSslSocket>
#include #include <QDebug>
qDebug()<< QSslSocket::sslLibraryBuildVersionString();
3、就是根据自己的版本下载源码进行编译,下面提供一个博客自己GitHub源码下载地址,提高下载速度,如果失效就到官网自行下载即可入口地址。
git clone https://github.com/openssl/openssl.git
4、切换对应的版本,执行配置,进行编译。
git checkout OpenSSL_1_1_1-stable
./config enable-shared
make depend
make -j4
文章来源:https://www.toymoban.com/news/detail-632768.html
5、最后将编译生成的动态库拷贝到QT的lib目录新(个人目录:/opt/Qt5.12.9/5.12.9/gcc_64/lib/),重新启动QT即可解决问题。文章来源地址https://www.toymoban.com/news/detail-632768.html
sudo cp libcrypto.so libcrypto.so.1.1 libssl.so libssl.so.1.1 /opt/Qt5.12.9/5.12.9/gcc_64/lib/
到了这里,关于解决QT5使用网络组件报错:qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!