问题标签 [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.
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.dll
ssleay32-xxx.dll
libeay32.dll
ssleay32.dll
现在 SSL 连接终于可以工作了,但是当我关闭应用程序并且在运行时使用了 Web 连接时,我收到了一条错误消息。
onlineTest.exe 中 0x000000007772D1CB (ntdll.dll) 的异常:0xC0000005:访问冲突读取位置 0x0000000000000074。
VS2015 调试窗口“mem.c”第 443 行:
free_debug_func 0x0000000000000000 void(*)(void *, int)
free_func 0x000007fee778b1ba {libeay32.dll!free} void(*)(void *)
str 0x0000000002500cf0 void *
编辑3: 我忘了编译-d debug .dll。只需将编译器模式更改为 Debug,生成 Debug .dll,如果需要不带 -d 的情况下重命名,然后将 debug .dll 复制到 debug 文件夹,将普通 .dll 复制到 release 文件夹。
android - 使用 Qt MINGW 为 Android arm 编译 openssl
我正在制作一个需要使用 SSL 的 Android 应用程序,但它会导致类似的问题
无法调用未解析的函数 EC_get_builtin_curves
我搜索了这个问题的解决方案,发现我需要自己为应用程序提供 SSL 库。我不知道如何为 Android 手臂构建 OpenSSL。有人可以帮忙吗?提前致谢。
c++ - Qt:为什么断开互联网时没有产生 `QAbstractSocket::error(QAbstractSocket::SocketError)` 信号?
当互联网因已连接的 SSL 套接字而断开连接时,我正在尝试获取信号。这是我得出的方式QSslSocket
:
这是它的初始化方式:
总的来说,一切都很好。但是,如果我在我的 Ubuntu PC 中禁用 wifi,那么我不会像预期的那样收到任何网络错误QAbstractSocket::SocketError
:
QAbstractSocket::NetworkError
-- 7 -- 网络出现错误(例如,网络电缆被意外拔出)。
在此 Qn 之前引用了以下帖子:
问题:当互联网断开连接时,Qt 独有的接收信号的方式是什么?
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 中使用)
任何想法或示例如何建立与苹果的加密连接?
提前致谢!
c++ - QTcpSocket 或 QSslSocket 会自动创建读/写线程吗?
尽管没有使用std::thread
或QThread
在任何地方,仍然遇到以下问题:
- 始终来自 Qt 的运行时调试错误日志:
QObject::connect: 不能对“QAbstractSocket::SocketError”类型的参数进行排队
(确保使用 qRegisterMetaType() 注册了“QAbstractSocket::SocketError”。) - 方法间歇性崩溃
TcpSocket::flush()
;
我使用这种方法来确保立即写入 TCP;现在有时应用程序会在这种方法下完全崩溃SIGPIPE
在搜索互联网时,发现人们建议修复第一个问题(即元错误)qRegisterMetaType()
,当我们有多个线程时,我需要使用注册。
同样的多线程也被称为第二个问题的原因;看到这个和这个。
但我没有超过1个线程!
我的套接字代码如下所示:
问题:Qt 是否为读/写目的自行创建任何内部线程?(我希望不是)。如何解决以上2个问题?
qt - QAbstractSocket::UnsupportedSocketOperationError 与 QSslSocket
QAbstractSocket
UnsupportedSocketOperationError
连接到主机时抛出QSslSocket::connectToHostEncrypted()
,
环境:Qt 5.9.3 Ubuntu 16.04(虚拟机)和 Qt 5.9.3 Fedora 26(本机)
你能帮我么?
我不明白错误以及为什么会发生?
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,但我愿意以后使用它。
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证书?
qt - 如何通过 qsslsocket 实现 ftp over tls 客户端?
在 FTPS 中,客户端连接到服务器,服务器发送欢迎消息;因此,客户端发送“AUTH TLS”命令,服务器设置Certificate、PrivateKey和startServerEncryption;客户端应该怎么做才能完成这个 ssl 握手?
服务器:
客户
我希望客户端使用 startClientEncryption 完成 ssl 握手,然后我可以使用客户端套接字发送命令或文件;但它不起作用;我知道客户端套接字和服务器套接字已经连接,但是如何在此添加 ssl?
qt - 在 Qt 中使用带有 URL“wss://...”的 QWebSocket 和 QSslSocket 有什么区别?
Qt 新手。我无法理解将 QWebSocket 与安全 url、“wss://...”和 QSslSocket 一起使用之间的区别。其中哪一项是与 Qt 中的服务器建立安全通信所必需的?或者是完全不同的东西?
Qt 示例“安全套接字客户端示例”使用带有“wss://...”的普通 QWebSocket,但文档和安全通信似乎直观的是使用 QSslSocket。我应该使用哪一个来实现安全的通信客户端?
我正在保护我的 QWebSockets,它们目前没有受到保护,并试图了解安全通信的替代方案和最佳实现。