【问题标题】:Reference library certificates from Android Network Security Configuration?从 Android 网络安全配置中引用库证书?
【发布时间】:2021-08-10 08:52:33
【问题描述】:

从 Android API 级别 24 开始,可以定义网络安全配置并从 Android 清单中引用它:

<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
   <application android:networkSecurityConfig="@xml/network_security_config"
                   ... >
      ...
  </application>
</manifest>

来源:https://developer.android.com/training/articles/security-config.html#manifest(2021-08-10 访问)

我有一个用例,我正在使用的 Android 库中包含许多 CA 证书。我想使用信任锚将我的安全配置限制为这些证书。

网络安全配置允许这样做:

<?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>

来源:https://developer.android.com/training/articles/security-config.html#ConfigCustom(2021-08-10 访问)

但证书位于我的 Android 库中,我不想复制这些文件。 如何从我的应用网络安全配置中引用库 CA 证书?

【问题讨论】:

  • @raw/my_ca 适用于位于库或应用程序中的 my_ca 原始资源,除非在库中采取措施防止这种情况发生。
  • 好的,图书馆资源有效,但图书馆资产无效?
  • 我不知道适用于资产的网络安全配置语法,无论这些资产是在库中还是在主应用程序模块中。
  • 好的,我已将库中的证书从资产移至资源,看起来很有希望...

标签: android android-network-security-config


【解决方案1】:

CA 证书应该放在库项目的res/raw 文件夹中,不是 放在assets 文件夹中。 这样就可以通过网络安全配置使用库引用来自应用程序的证书。

至少现在一切都编译好了。虽然,由于另一个问题,我还没有验证完全工作的设置,请参阅:Combine Network Security Configuration with OkHttp and custom CAs

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-22
    • 2017-01-07
    • 2019-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-01
    相关资源
    最近更新 更多