首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt应用程序-使用TLS1.0

Qt应用程序-使用TLS1.0
EN

Stack Overflow用户
提问于 2018-04-02 12:18:30
回答 1查看 864关注 0票数 2

更新

Windows 7和10的一些PC仍然存在问题。Wireshark说,这些请求是用Tlsv1.0完成的。

我读到了添加注册表项的解决方案,但尽管我尝试过,但没有一个可以工作(禁用Tls1.0并启用Tls1.1和1.2),但我不希望我的客户端执行这样的过程。我想告诉我的应用程序只使用1.2。

EOU

我用Qt编写了一个应用程序,它用https://www.myprefix.mydomain.com对我的网站执行标准的get请求。

现在,Windows上部署的应用程序在TLS版本1.2的计算机上工作,但是如果计算机启用了TLS 1.0,请求就会被阻止。最后,我编写了一个最小的应用程序(hello,您有服务器吗?)并检查了两台计算机中的Wireshark条目,这似乎是唯一的区别。根据Wireshark的说法,如果TLS1.0可用,那么我的应用程序就会使用TLS1.0 (不管是否存在1.2)并被阻塞。

我知道1.0不再被认为是安全的,所以我想告诉我的Qt应用程序只使用TLS1.+。

我宁愿不使用http (稍后我将获得敏感信息),而不告诉我的客户端禁用TLS1.0。这能被硬编码到Qt应用中吗?

我试过这样做:

代码语言:javascript
复制
QSslConfiguration config = QSslConfiguration::defaultConfiguration();
config.setProtocol(QSsl::TlsV1_2);
QSslConfiguration::setDefaultConfiguration(config);

但是应用程序在可用时仍然使用TLS1.0,服务器会阻塞请求(这是正确的)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-10 21:39:51

预先构建的Qt包支持OpenSSL (在Windows和Linux上,macOS默认使用SecureTransport框架),但它们没有提供它,因为在一些国家,对于具有加密功能的软件有特定的限制。

因此,如果您的应用程序正在工作,并且没有在您的Windows计算机上专门安装OpenSSL,这意味着它的副本在您的系统中。您应该找到它,如果可能的话,从PATH环境变量中删除包含的文件夹。

接下来,您应该获取OpenSSL的最新版本。然后,您可以在应用程序文件夹中复制dll以确保它们被选中,修改Qt中的PATH环境变量( Project面板的Run部分),以便应用程序能够找到它。

请注意,您目前必须使用OpenSSL 1.0.X,如果您想要1.1支持,可以从QT5.10开始,但是您必须自己重新构建Qt。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49611168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档