我在我的 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/