问题标签 [qsslsocket]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2893 浏览

c++ - 如何在 Windows 上为 Qt 安装 OpenSSL 1.1.0?

我的目标是QNetworkRequest使用QNetworkAccessManager.

OpenSSL 1.1.0 不适用于 Qt 5.8!在编辑 2 中查找安装解决方案!

第一次尝试:获取 ssleay32.lib 和 libeay32.lib 并将它们复制到调试和发布文件夹中。不要工作。

第二次尝试:(因为是废话而删除)但它不再起作用了。

代码(适用于普通 http):

错误信息:

编辑 1: 我发现这个Artikel 和 OpenSSL 1.1.0 将与 Qt 5.10 一起使用,但不适用于我正在使用的 Qt 5.8。在这篇文章中,我找到了QSslSocket::sslLibraryBuildVersionString()命令,我需要 OpenSSL 版本:OpenSSL 1.0.2h 3 May 2016

稍后我将检查另一个 OpenSSL 版本并编辑这篇文章是否正常工作。

编辑 2: 下载OpenSSL 1.0.2h 3 May 2016并安装 7zip 和 Perl。提取 openSSL 文件夹并按照INSTALL.W64. 转到文件夹并将和bin复制到应用程序文件夹并将文件重命名为和。谢谢@[Max Go]。libeay32-xxx.dllssleay32-xxx.dlllibeay32.dllssleay32.dll

现在 SSL 连接终于可以工作了,但是当我关闭应用程序并且在运行时使用了 Web 连接时,我收到了一条错误消息。

onlineTest.exe 中 0x000000007772D1CB (ntdll.dll) 的异常:0xC0000005:访问冲突读取位置 0x0000000000000074。

VS2015 调试窗口“mem.c”第 443 行:

  1. free_debug_func 0x0000000000000000 void(*)(void *, int)
  2. free_func 0x000007fee778b1ba {libeay32.dll!free} void(*)(void *)
  3. str 0x0000000002500cf0 void *

编辑3: 我忘了编译-d debug .dll。只需将编译器模式更改为 Debug,生成 Debug .dll,如果需要不带 -d 的情况下重命名,然后将 debug .dll 复制到 debug 文件夹,将普通 .dll 复制到 release 文件夹。

0 投票
2 回答
176 浏览

android - 使用 Qt MINGW 为 Android arm 编译 openssl

我正在制作一个需要使用 SSL 的 Android 应用程序,但它会导致类似的问题

无法调用未解析的函数 EC_get_builtin_curves

我搜索了这个问题的解决方案,发现我需要自己为应用程序提供 SSL 库。我不知道如何为 Android 手臂构建 OpenSSL。有人可以帮忙吗?提前致谢。

0 投票
1 回答
2671 浏览

c++ - Qt:为什么断开互联网时没有产生 `QAbstractSocket::error(QAbstractSocket::SocketError)` 信号?

当互联网因已连接的 SSL 套接字而断开连接时,我正在尝试获取信号。这是我得出的方式QSslSocket

这是它的初始化方式:

总的来说,一切都很好。但是,如果我在我的 Ubuntu PC 中禁用 wifi,那么我不会像预期的那样收到任何网络错误QAbstractSocket::SocketError

QAbstractSocket::NetworkError -- 7 -- 网络出现错误(例如,网络电缆被意外拔出)。

在此 Qn 之前引用了以下帖子:

问题:当互联网断开连接时,Qt 独有的接收信号的方式是什么?

0 投票
1 回答
519 浏览

qt - Qt 5.8 Apple 通知服务器握手失败

我现在尝试了一些我们的,但我无法让它工作。我想从 Qt 应用程序推送一些通知。试图让它在安装了 Qt 5.8 的 macOS Sierra 上工作,也可以在安装 Qt 5.8 的 Pi3 上工作。

我用“fastlane pem”创建了我的推送证书,并用“Pusher”对其进行了测试,它工作正常。但我无法让它在 Qt 中工作......

首先是我用来初始化和连接 QSslSocket 的代码:

加载证书

这就是我得到的输出:

所以根据Qt文档的错误:

QAbstractSocket::SocketError(13)

意思如下:

SslHandshakeFailedError

> SSL/TLS 握手失败,无法建立加密通道。sslErrors() 信号应该已经发出。

但是sslErrors()我的情况下不会发出信号....

SSL/TLS 握手失败,所以连接被关闭(仅在 QSslSocket 中使用)

任何想法或示例如何建立与苹果的加密连接?

提前致谢!

0 投票
2 回答
709 浏览

c++ - QTcpSocket 或 QSslSocket 会自动创建读/写线程吗?

尽管没有使用std::threadQThread在任何地方,仍然遇到以下问题:

  1. 始终来自 Qt 的运行时调试错误日志:

    QObject::connect: 不能对“QAbstractSocket::SocketError”类型的参数进行排队
    (确保使用 qRegisterMetaType() 注册了“QAbstractSocket::SocketError”。)

  2. 方法间歇性崩溃TcpSocket::flush()
    我使用这种方法来确保立即写入 TCP;现在有时应用程序会在这种方法下完全崩溃SIGPIPE

在搜索互联网时,发现人们建议修复第一个问题(即元错误)qRegisterMetaType(),当我们有多个线程时,我需要使用注册。
同样的多线程也被称为第二个问题的原因;看到这个这个

但我没有超过1个线程!
我的套接字代码如下所示:

问题:Qt 是否为读/写目的自行创建任何内部线程?(我希望不是)。如何解决以上2个问题?

0 投票
0 回答
1066 浏览

qt - QAbstractSocket::UnsupportedSocketOperationError 与 QSslSocket

QAbstractSocketUnsupportedSocketOperationError连接到主机时抛出QSslSocket::connectToHostEncrypted()

环境:Qt 5.9.3 Ubuntu 16.04(虚拟机)和 Qt 5.9.3 Fedora 26(本机)

你能帮我么?
我不明白错误以及为什么会发生?

0 投票
1 回答
942 浏览

c++ - QSslSocket 无法解析和 Permission Denied 错误

错误消息如下:

qt.network.ssl:QSslSocket:无法解析 TLSv1_1_client_method

qt.network.ssl:QSslSocket:无法解析 TLSv1_2_client_method

qt.network.ssl:QSslSocket:无法解析 TLSv1_1_server_method

qt.network.ssl:QSslSocket:无法解析 TLSv1_2_server_method

qt.network.ssl:QSslSocket:无法解析 SSL_select_next_proto

qt.network.ssl:QSslSocket:无法解析 SSL_CTX_set_next_proto_select_cb

qt.network.ssl:QSslSocket:无法解析 SSL_get0_next_proto_negotiated

qt.network.ssl:QSslSocket:无法解析 SSL_set_alpn_protos

qt.network.ssl:QSslSocket:无法解析 SSL_CTX_set_alpn_select_cb

qt.network.ssl:QSslSocket:无法解析 SSL_get0_alpn_selected

我运行 Windows 7 机器,在我的 D: 驱动器上安装了 openssl 1.1.0。我正在使用 Qt5.9.0

我的简历

这是触发错误的代码:

我不断收到 qt.network.ssl 错误,在链接 openssl 后,我不断收到编译错误:

:-1: 错误: 找不到 D:\OpenSSL-Win32\lib: 权限被拒绝

:-1: 错误:找不到-llibssl

collect2.exe:-1: 错误: 错误: ld 返回 1 退出状态

尽管我目前没有使用 OpenSSL,但我愿意以后使用它。

0 投票
0 回答
187 浏览

qt - Qt QSslSocket comodo 正 ssl

我在 apache 上安装了一个真正购买的 comodo positive ssl 证书,并通过网站https://www.sslshopper.com/ssl-checker.html检查了正确的安装 ,证书是 5 个文件

当我尝试通过控制台中的 chrome 连接到我的服务器时,出现以下错误:

WebSocket 连接到“wss://192.165.10.70:5870/”失败:连接建立错误:net::ERR_CERT_COMMON_NAME_INVALID

在服务器端:

现在监听 0.0.0.0:5870 ("COMODO CA Limited") ("COMODO RSA Domain Validation Secure Server CA") ("GB") 新连接 peerCertificate QSslCertificate("", "", "1B2C1Y8AsgApgBmY7PhCtg==", () , (), QMap(), QDateTime(无效), QDateTime(无效))

对等名称“”

加密数据

加密

错误“远程主机关闭了连接”

错误:无法接收消息(远程主机关闭连接)

js客户端:

数量:

看了类似的文章,没有一个没有解决办法,如何正确使用comodo证书?

0 投票
0 回答
170 浏览

qt - 如何通过 qsslsocket 实现 ftp over tls 客户端?

在 FTPS 中,客户端连接到服务器,服务器发送欢迎消息;因此,客户端发送“AUTH TLS”命令,服务器设置Certificate、PrivateKey和startServerEncryption;客户端应该怎么做才能完成这个 ssl 握手?

服务器:




客户

我希望客户端使用 startClientEncryption 完成 ssl 握手,然后我可以使用客户端套接字发送命令或文件;但它不起作用;我知道客户端套接字和服务器套接字已经连接,但是如何在此添加 ssl?

0 投票
1 回答
192 浏览

qt - 在 Qt 中使用带有 URL“wss://...”的 QWebSocket 和 QSslSocket 有什么区别?

Qt 新手。我无法理解将 QWebSocket 与安全 url、“wss://...”和 QSslSocket 一起使用之间的区别。其中哪一项是与 Qt 中的服务器建立安全通信所必需的?或者是完全不同的东西?

Qt 示例“安全套接字客户端示例”使用带有“wss://...”的普通 QWebSocket,但文档和安全通信似乎直观的是使用 QSslSocket。我应该使用哪一个来实现安全的通信客户端?

我正在保护我的 QWebSockets,它们目前没有受到保护,并试图了解安全通信的替代方案和最佳实现。