android - Android 9 上的 Qt 和 OpenSSL

标签 android qt ssl openssl android-9.0-pie

我在我的 Qt 项目中为包括 Android 在内的移动应用程序使用 OpenSSL。

我设置 .so 文件和 HTTPS 在 Android 9 之前完美运行。我知道 Android 9 版本强制执行网络安全,特别是默认情况下它禁用明文通信并且仅允许系统 CA:https://developer.android.com/training/articles/security-config

我在 Android 9 上使用自签名证书向自定义 HTTPS 服务器发出 HTTPS 请求时遇到了问题 - 在早期版本上运行完美。

我已经进行了测试 - 将网络安全设置设置为 Android 7.1 上的 Android 9 默认设置:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="false">
        <trust-anchors>
            <certificates src="system" />
        </trust-anchors>
    </base-config>
</network-security-config>
  • 这并没有破坏 HTTPS 功能。因此,我怀疑 Android 9 不仅更改了网络安全默认配置,还更改了其他内容,这些内容不允许应用程序 bundle 的 openssl 共享库运行。

这可能吗?如何解决?

最佳答案

在使用 Qt 的情况下,Android 网络安全配置不会影响通信并且透明地工作,对于 TLS 流量也是如此。

关于android - Android 9 上的 Qt 和 OpenSSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53581174/

相关文章:

.net - 安装在不同操作系统上的 .NET 应用程序使用什么版本的 TLS

java - 如何将 2 个 APK 加入到 1 个 APK 中?

c++ - 截取特定窗口的屏幕截图 - C++/Qt

c++ - 嵌入到应用程序中的最佳 HTML 渲染引擎是什么?

c++ - 为什么我不能用这个功能在Qt框架中打开另一个进程?

tomcat - Tomcat 上的 SSL 证书 - 别名无法识别 key

java - 混淆字符串值java android

android - 无法从 gradle 文件执行 shell 脚本

java - 画廊与声音滑动

javax.net.ssl.SSLHandshakeException : No enabled protocols; SSLv3 is no longer supported and was filtered from the list