收集安然性设备特点让应用可以在一个安然的声明性设备文件中自定义其收集安然设置,而无需修改应用代码。可以针对特定域和特定应用设备这些设置。此特点的重要功能如下所示:
- 自定义信赖锚:针对应用的安然连接自定义哪些证书揭橥机构 (CA) 值得信赖。例如,信赖特定的自签订证书或限制应用信赖的公共 CA 集。
- 仅调试重写:在应用中以安然方法调试安然连接,而不会增长已安装用户的风险。
- 明文通信选择退出:防止应用不测应用明文通信。
- 证书固定:将应用的安然连接限制为特定的证书。
添加安然设备文件
收集安然性设备特点应用一个 XML 文件,您可以在该文件中指定应用的设置。您必须在应用的清单中包含一个条目以指向该文件。以下代码摘自一份清单,演示了若何创建此条目:
- <?xml version="1.0" encoding="utf-8"?>
- <manifest ... >
- <application android:networkSecurityConfig="@xml/network_security_config"
- ... >
- ...
- </application>
- </manifest>
自定义可托 CA
应用可能须要信赖自定义的 CA 集,而不是平台默认值。出现此情况的最常见原因包含:
- 连接到具有自定义证书揭橥机构的主机,如自签订或在公司内部签发的 CA。
- 将 CA 集仅限于您信赖的 CA,而不是每个预装 CA。
- 信赖体系中未包含的附加 CA。
默认情况下,来自所有应用的安然连接(应用 TLS 和 HTTPS 之类的协定)均信赖预装的体系 CA,而面向 Android 6.0(API 级别 23)及更低版本的应用默认情况下还会信赖用户添加的 CA 存储。应用可以应用 base-config(应用范围的自定义)或 domain-config(按竽暌跪自定义)自定义本身的连接。
调试经由过程 HTTPS 连接的应用时,您可能须要连接到没有为临盆办事器供给 SSL 证书的本地开辟办事器。为了支撑此操作,而又纰谬应用的代码进行任何修改,您可以经由过程应用 debug-overrides 指定仅在 android:debuggable 为 true 时才可托的仅调试 CA。平日,IDE 和构建对象会主动为非宣布版本设置此标记。
设备自定义 CA
假设您要连接到应用自签订 SSL 证书的主机,或者连接到其 SSL 证书是由您信赖的非公共 CA(如公司的内部 CA)签发的主机。
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=http://mobile.51cto.com/"@raw/my_ca"/>
- </trust-anchors>
- </domain-config>
- </network-security-config>
以 PEM 或 DER 格局将自签订或非公共 CA 证书添加到 res/raw/my_ca。
限制可托 CA 集
如不雅应用不想信赖体系信赖的所有 CA,则可以自行指定,缩减要信赖的 CA 集。如许可以防止应用信赖任何其他 CA 签发的讹诈性证书。
限制可托 CA 集的设备与针对特定域信赖自定义 CA 类似,不合的是,前者要在资本中供给多个 CA。
res/xml/network_security_config.xml:
- <?xml version="1.0" encoding="utf-8"?>
- <network-security-config>
- <domain-config>
- <domain includeSubdomains=
推荐阅读
比来线上 MySQL 接连产生了几起数据异常,都是在凌晨爆发,因为营业场景属于典范的数据仓库型应用,日间压力较小无法复现。甚职苄些异常还比较诡异,最后 root cause 分析颇费周折。那实际营业傍边咱们若何能快速的定>>>详细阅读
本文标题:Android网络安全性配置
地址:http://www.17bianji.com/lsqh/36449.html
1/2 1