为了在整个 Android 生态系统中提供更一致和更安全的体验,从 Android Nougat 开始,兼容设备仅信任AOSPCAs
中维护的标准化系统。
以前,pre-installed CAs
与系统捆绑的集合可能因设备而异。当某些设备不包含应用程序连接所需的CA时,这可能会导致兼容性问题;如果某些设备上包含不符合我们安全要求的CA ,则可能会导致潜在的安全问题。
首先,确保您的 CA 需要包含在系统中。预装的 CA 仅适用于满足我们安全要求的 CA,因为它们会影响设备上大多数应用程序的安全连接。如果您需要添加一个 CA 来连接到使用该 CA 的主机,您应该改为自定义连接到这些主机的应用程序和服务。有关自定义可信 CA的更多信息。
在上面的链接中,您可以找到信任具有不同需求的自定义 CA 的所有必要信息,例如
- 信任自定义 CA 进行调试
- 信任域的自定义 CA
- 为某些域信任用户添加的 CA
- 为所有域信任用户添加的 CA,除了某些域
- 为所有安全连接信任用户添加的 CA
因此,基本上您需要添加一个安全配置文件并配置一个自定义 CA(对于 Android 7.0(API 级别 24)及更高版本)。
在你的manifest.xml
<manifest ... >
<application android:networkSecurityConfig="@xml/network_security_config"
... >
...
</application>
</manifest>
在 res/xml/network_security_config.xml 中:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config>
<domain includeSubdomains="true">example.com</domain>
<trust-anchors>
<certificates src="@raw/my_ca"/>
</trust-anchors>
</domain-config>
</network-security-config>
仅供参考:-
如果您运行您认为应该包含在 Android 中的 CA,请首先完成Mozilla CA 包含流程,然后针对 Android 提交功能请求,以将该 CA 添加到标准化的系统 CA 集中。
让我知道任何进一步的帮助。
希望这会帮助你。继续编码!!!