热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linuxqtssl,【Qt】Qt中使用ssl时报错:qt.network.ssl:QSslSocket:cannotresolveSSLv2_client_method...

一、问题在Qt中使用https,运行时报错:qt.network.ssl:QSslSocket:cannotresolveSSLv2_client_me

一、问题

在Qt中使用https,运行时报错:

qt.network.ssl: QSslSocket: cannot resolve SSLv2_client_method

二、原因分析

SSLv2由于某些漏洞导致的不安全原因, 在某些linux发行版里的openssl库禁用掉了SSLv2

三、解决办法

重新编译openssl

1、下载openssl

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

2、编译

./config enable-shared

make -j4

3、部署

将ssl和crypto库拷贝到Qt目录lib下:

cp libssl.so* libcrypto.so* ~/Qt5.6.3/5.6.3/gcc_64/lib/ -a

4、新的错误

重新运行时,报错

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

qt.network.ssl: QSslSocket: cannot resolve CRYPTO_num_locks

qt.network.ssl: QSslSocket: cannot resolve CRYPTO_set_id_callback

qt.network.ssl: QSslSocket: cannot resolve CRYPTO_set_locking_callback

qt.network.ssl: QSslSocket: cannot resolve ERR_free_strings

qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_cleanup

qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_init

qt.network.ssl: QSslSocket: cannot resolve sk_new_null

qt.network.ssl: QSslSocket: cannot resolve sk_push

qt.network.ssl: QSslSocket: cannot resolve sk_free

qt.network.ssl: QSslSocket: cannot resolve sk_num

qt.network.ssl: QSslSocket: cannot resolve sk_pop_free

qt.network.ssl: QSslSocket: cannot resolve sk_value

qt.network.ssl: QSslSocket: cannot resolve SSL_library_init

qt.network.ssl: QSslSocket: cannot resolve SSL_load_error_strings

qt.network.ssl: QSslSocket: cannot resolve SSL_get_ex_new_index

qt.network.ssl: QSslSocket: cannot resolve SSLv2_client_method

qt.network.ssl: QSslSocket: cannot resolve SSLv3_client_method

qt.network.ssl: QSslSocket: cannot resolve SSLv23_client_method

qt.network.ssl: QSslSocket: cannot resolve SSLv2_server_method

qt.network.ssl: QSslSocket: cannot resolve SSLv3_server_method

qt.network.ssl: QSslSocket: cannot resolve SSLv23_server_method

qt.network.ssl: QSslSocket: cannot resolve X509_STORE_CTX_get_chain

qt.network.ssl: QSslSocket: cannot resolve OPENSSL_add_all_algorithms_noconf

qt.network.ssl: QSslSocket: cannot resolve OPENSSL_add_all_algorithms_conf

qt.network.ssl: QSslSocket: cannot resolve SSLeay

qt.network.ssl: QSslSocket: cannot resolve SSLeay_version

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

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

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

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

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

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

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

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

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

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

四、解决新错误

参考博客:https://www.cnblogs.com/btian/p/6130560.html

Qt5.6对openssl版本的要求1.0,而从git上下载的最新版本是1.1的;

其它Qt的版本对openssl的要求未测试。

1、查看版本信息

git branch -r

origin/HEAD -> origin/master

origin/OpenSSL-engine-0_9_6-stable

origin/OpenSSL-fips-0_9_7-stable

origin/OpenSSL-fips-0_9_8-stable

origin/OpenSSL-fips-1_2-stable

origin/OpenSSL-fips-2_0-dev

origin/OpenSSL-fips-2_0-stable

origin/OpenSSL-fips2-0_9_7-stable

origin/OpenSSL_0_9_6-stable

origin/OpenSSL_0_9_7-stable

origin/OpenSSL_0_9_8-stable

origin/OpenSSL_0_9_8fg-stable

origin/OpenSSL_1_0_0-stable

origin/OpenSSL_1_0_1-stable

origin/OpenSSL_1_0_2-stable

origin/OpenSSL_1_1_0-stable

origin/OpenSSL_1_1_1-stable

origin/SSLeay

origin/master

origin/tls1.3-draft-18

origin/tls1.3-draft-19

2、导出1.0.2版本

git checkout -b openssl-1.0.2 origin/OpenSSL_1_0_2-stable

3、编译

./config enable-shared

make -j4

4、部署

cp libssl.so* libcrypto.so* ~/Qt5.6.3/5.6.3/gcc_64/lib/ -a

重新运行不再报错



推荐阅读
  • 本文介绍了在sqoop1.4.*版本中,如何实现自定义分隔符的方法及步骤。通过修改sqoop生成的java文件,并重新编译,可以满足实际开发中对分隔符的需求。具体步骤包括修改java文件中的一行代码,重新编译所需的hadoop包等。详细步骤和编译方法在本文中都有详细说明。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 五、RabbitMQ Java Client基本使用详解
    JavaClient的5.x版本系列需要JDK8,用于编译和运行。在Android上,仅支持Android7.0或更高版本。4.x版本系列支持7.0之前 ... [详细]
  • 文本处理与软件管理
    1、自建yum仓库,分别为网络源和本地源本地源:       网络源:[root@openvpn~]#catetcyum.repos.dCentOS-Base.repo#CentO ... [详细]
  • Ivecreatedavariable-sizedarray(VLA)andIwanttofillitwithusingfgetsfunctionsinafor ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • Jmeter对RabbitMQ压力测试
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Jmeter对RabbitMQ压力测试相关的知识,希望对你有一定的参考价值。Jm ... [详细]
  • RabbitMQ的消息持久化处理
    1、RabbitMQ的消息持久化处理,消息的可靠性是RabbitMQ的一大特色,那么RabbitMQ是如何保证消息可靠性的呢——消息持久化。2、auto ... [详细]
  • 消息中间件RabbitMQ 高级特性之消费端ACK与重回队列
    什么是消费端的ACK和重回队列?消费端的手工ACK和NACK消费端进行消费的时候,如果由于业务异常我们可以进行日志的记录,然后进行补偿如果由于服务器宕机等严重问题 ... [详细]
  • 导航:网站首页谁有大一C语言考试题?快考试了,跪求题库有谁会做C语言的题目谁有大一C语言考试题?快考试了,跪 ... [详细]
  • linux clickhouse安装在指定目录_Centos8服务器指定目录安装配置Nginx
    1.安装前准备(1)检查是否安装过nginx(如果没有安装过可以无视)find-namenginx搜索nginx文件及其文件夹rm-rf【nginx配置地址文件及其文件夹】手动删除 ... [详细]
author-avatar
mobiledu2502868933
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有