热门标签 | 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

重新运行不再报错



推荐阅读
  • TCP三次握手过程详解与图示解析
    本文详细解析了TCP三次握手的过程,并通过图示清晰展示了各个状态的变化。同时,文章还介绍了四次挥手的图解,解释了在TIME_WAIT状态中,客户端最后一次发送的ACK包的作用和重要性。 ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 在IIS上运行的WebApi应用程序在开发环境中能够正常进行文件的读写操作。然而,在尝试通过FTP访问实时服务器上的文件列表时,遇到了无法显示的问题,尽管服务器配置与开发环境相同。这可能涉及权限设置、FTP服务配置或网络连接等方面的问题。 ... [详细]
  • 2016-2017学年《网络安全实战》第三次作业
    2016-2017学年《网络安全实战》第三次作业总结了教材中关于网络信息收集技术的内容。本章主要探讨了网络踩点、网络扫描和网络查点三个关键步骤。其中,网络踩点旨在通过公开渠道收集目标信息,为后续的安全测试奠定基础,而不涉及实际的入侵行为。 ... [详细]
  • 本文深入探讨了使用Puppet进行软件包分发与管理的方法。首先介绍了fpm这一跨平台的软件包制作工具,其简便的操作流程使得软件包的创建变得轻松快捷。fpm的项目地址为:https://github.com/jordansissel/fpm。通过结合Puppet和fpm,可以实现高效、可靠的软件包管理和部署。 ... [详细]
  • 如果程序使用Go语言编写并涉及单向或双向TLS认证,可能会遭受CPU拒绝服务攻击(DoS)。本文深入分析了CVE-2018-16875漏洞,探讨其成因、影响及防范措施,为开发者提供全面的安全指导。 ... [详细]
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
  • 提升 Kubernetes 集群管理效率的七大专业工具
    Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ... [详细]
  • REST与RPC:选择哪种API架构风格?
    在探讨REST与RPC这两种API架构风格的选择时,本文首先介绍了RPC(远程过程调用)的概念。RPC允许客户端通过网络调用远程服务器上的函数或方法,从而实现分布式系统的功能调用。相比之下,REST(Representational State Transfer)则基于资源的交互模型,通过HTTP协议进行数据传输和操作。本文将详细分析两种架构风格的特点、适用场景及其优缺点,帮助开发者根据具体需求做出合适的选择。 ... [详细]
  • 如何精通编程语言:全面指南与实用技巧
    如何精通编程语言:全面指南与实用技巧 ... [详细]
  • 深入解析HTTPS:保障Web安全的加密协议
    本文详细探讨了HTTPS协议在保障Web安全中的重要作用。首先分析了HTTP协议的不足之处,包括数据传输过程中的安全性问题和内容加密的缺失。接着介绍了HTTPS如何通过使用公钥和私钥的非对称加密技术以及混合加密机制,确保数据的完整性和机密性。最后强调了HTTPS的安全性和可靠性,为现代网络通信提供了坚实的基础。 ... [详细]
  • 在 CentOS 7 中,为了扩展可用软件包的数量,通常需要配置多个第三方软件源。这些第三方源包括 EPEL、Nux Dextop 和 ELRepo 等,它们提供了大量官方源中未包含的软件包,从而增强了系统的功能性和灵活性。通过正确配置这些源,用户可以轻松安装和管理更多种类的软件,满足不同的需求。 ... [详细]
  • a16z深入解析:代币设计的常见误区、优化策略及未来趋势分析
    a16z深入解析:代币设计的常见误区、优化策略及未来趋势分析 ... [详细]
  • 开源实习机会 | Compiler SIG 正式发布实习任务,诚邀您加入申请!
    对编译技术充满兴趣却苦于无从入手?当前疫情形势下,外出实习变得困难重重?现在,Compiler SIG 正式发布了一系列实习任务,为有志之士提供了宝贵的机会。无论你是初学者还是有一定基础的学生,都能在这里找到适合自己的实践项目。我们诚挚邀请您的加入,共同探索编译技术的无限可能! ... [详细]
  • 如何撰写PHP电商项目的实战经验? ... [详细]
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社区 版权所有