解决Qt5使用SSL的“qt.network.ssl: QSslSocket: cannot resolve SSLv2_client_method”错误

在使用Qt的网络组件连接某些服务器时, 会提示“qt.network.ssl: QSslSocket: cannot resolve SSLv2_client_method”的错误, 导致连接失败。

经查资料得知这是由于SSLv2由于某些漏洞导致的不安全原因, 在某些linux发行版里禁用掉了SSLv2。

解决办法是自己重新编译openssl,加上SSLv2的支持

1.  下载代码:

git clone https://github.com/openssl/openssl.git

2. 编译

我的测试结果是openssl1.1不工作,但是openssl1.0工作

git checkout OpenSSL_1_0_0-stable
./config enable-sharedmake depend
make -j4

3. Copy编译结果到$QTDIR/lib, 我的目录是/opt/Qt5.7.0/5.7/gcc_64/lib/

sudo cp libcrypto.so libssl.so libcrypto.so.1.0.0 libssl.so.1.0.0 /opt/Qt5.7.0/5.7/gcc_64/lib/

4. 从新运行应用, Qt pulgin会自动从新编译的ssl libries里load符号

这时仍然会得到一些warning, 如

qt.network.ssl: QSslSocket: cannot resolve TLSv1_1_client_method
qt.network.ssl: QSslSocket: cannot resolve TLSv1_2_client_method
qt.network.ssl: QSslSocket: cannot resolve TLSv1_1_server_method
qt.network.ssl: QSslSocket: cannot resolve TLSv1_2_server_method
qt.network.ssl: QSslSocket: cannot resolve SSL_select_next_proto
qt.network.ssl: QSslSocket: cannot resolve SSL_CTX_set_next_proto_select_cb
qt.network.ssl: QSslSocket: cannot resolve SSL_get0_next_proto_negotiate

忽略就可以了

时间: 2024-08-09 09:47:44

解决Qt5使用SSL的“qt.network.ssl: QSslSocket: cannot resolve SSLv2_client_method”错误的相关文章

qt.network.ssl: QSslSocket: cannot call unresolved function SSLv23_client_method

最近在做一个网络音乐播放器时,由于出现qt.network.ssl: QSslSocket: cannot call unresolved function SSLv23_client_method, 而不能播放网络歌曲. 上网搜了半天,都说要在电脑那里安装openssl,然后把C:\OpenSSL-Win64\bin下的libeay32.dll和ssleay32.dll拷贝到D:\Qt\Qt5.4.2\5.4\mingw491_32\bin, 然而并没什么卵用! 我的解决办法是: Qt的这个目

Qt 5.4错误"qt.network.ssl: QSslSocket: cannot call"

今天研读QQStars(http://www.qtcn.org/bbs/read.php?tid-57944.html)时,发现这个软件登陆不上,总是提示: qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error qt.network.ssl: QSslSocket: cannot call unresolved function TLSv1_client_method qt.network.ssl: Q

QT4.8.6之qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error

想试着用qt写一个爬虫,编译的时候报如下错误 qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error qt.network.ssl: QSslSocket: cannot call unresolved function TLSv1_client_method qt.network.ssl: QSslSocket: cannot call unresolved function SSL_CTX_new q

解决qt提示:qt.network.ssl: QSslSocket: cannot call unresolved function DH_free和qt.network.ssl: QSslSocket: cannot call unresolved function d2i_DHparams

转载请注明出处:https://i.cnblogs.com/EditPosts.aspx?postid=7127254 运行环境:VS2015&Qt5.8 方法一(未能解决):把C:\Qt\Qt5.8.0\Tools\QtCreator\bin下的libeay32.dll和ssleay32.dll库复制到C:\Qt\Qt5.8.0\5.8\msvc2015_64\bin下. 方法二(解决):登录网站https://indy.fulgan.com/SSL/下载 openssl-1.0.2i-x64

解决qt提示:qt.network.ssl: QSslSocket: cannot call unresolved function DH_free

方法一(解决):把C:\Qt\Qt5.8.0\Tools\QtCreator\bin下的libeay32.dll和ssleay32.dll库复制到C:\Qt\Qt5.8.0\5.8\msvc2015_64\bin下. 方法二(解决):登录网站https://indy.fulgan.com/SSL/下载 openssl-1.0.2i-x64_86-win64.zip,解压后把libeay32.dll和ssleay32.dll库复制到C:\Qt\Qt5.8.0\5.8\msvc2015_64\bin

网站启动SSL, http变为https后,session验证码错误解决方法

网站启动SSL, http变为https后,session验证码错误解决方法 最近公司需要后台启动安全证书,证书安装完毕后,后台老提示 验证码错误,经过几天的研究,此问题已经得到有效解决,现把方法如下. 一.问题展示 看到此问题后,我求助了伟大的互联网,网上大概的解决方法,是说要写两个session,不能相互互通,按照这个思路,我整了几天不见好,后来我重新写了一段代码,问题解决,其实根本不需要写两个session,先公布解决方法. 二.解决方法 原来的验证码代码 <script language

解决Qt5 Creator无法切换输入法(fcitx),不能录入汉字问题

笔者系统环境,Ubuntu 14.04,输入法fcitx下搜狗输入法. 其它非Ubuntu linux发行版,不通过软件源安装Qt5,从Qt官网http://qt-project.org/下载安装包,也存在这个问题. 在Ubuntu下解决方法如下,其它linux发行版解决方法雷同 1.安装fcitx for Qt5动态库 sudo apt-get install fcitx-libs-qt5 注:这一个命令执行完毕后,系统中已经具备基于Qt5的程序的汉字录入环境支持.存在一个奇怪现象是,Qt5所

解决QT5.3.1下触控笔无法工作的问题

刚进新公司,据开发人员说存在QT5.3.1下触控笔无法工作,而在QT5.2.1下能正常工作,研究了一下. Steps: 1. 首先当然是看下问题是否真的存在.测试情况: 环境 结果 备注 QT5.2.1, win 8.1 32bit, mingw 触控笔正常工作 QT5.3.1, win 8.1 32bit, mingw 触控笔无法工作 用手指可以正常触控 2. 目前的情况来看应该是QT发布QT5.3.x时引入的新BUG,决定到QT-PROJECT上的BUGREPORTS搜下是否已经有此BUG,

解决Qt5.7.0 cannot find -lGL

很久没用Qt了,这次要做一个协议编辑器,在ubuntu 14.04上安装了最新版本的Qt 5.7.0.界面改用扁平化风格,第一感觉还不错.按默认步骤创建了一个gui程序,编译运行,报了一个错:cannot find -lGL. 作为一个用惯了makefile的程序员,知道是少了库文件,而且名字应该为libGL.a或者libGL.so.到网上搜索一下,发现GL是openGL的缩写,显然是缺少openGL的开发库.安装命令为:sudo apt-get install libgl1-mesa-dev.