以 PEM 或 DER 格局将可托 CA 添加到 res/raw/trusted_roots。请留意,如不雅应用 PEM 格局,文件必须仅包含 PEM 数据,且没有额外的文本。您还可以供给多个 <certificates> 元素,而不是只供给一个元素。
信赖附加 CA
应用可能须要信赖体系不信赖的附加 CA,出现此情况的原因可能是体系还未包含此 CA,或 CA 不相符添加到 Android 体系中的请求。应用可以经由过程为一个设备指定多个证书源来实现此目标。
res/xml/network_security_config.xml:
- <?xml version="1.0" encoding="utf-8"?>
- <network-security-config>
- <base-config>
- <trust-anchors>
- <certificates src=http://mobile.51cto.com/"@raw/extracas"/>
- <certificates src=http://mobile.51cto.com/"system"/>
- </trust-anchors>
- </base-config>
- </network-security-config>
设备用于调试的 CA
- <pin-set expiration="date">
- ...
- </pin-set>
- 可以包含:
这比一般的前提代码更安然,因为出于安然推敲,应用存储不接收被标记为可调试的应用。
选择退出明文通信
旨在连接到仅应用安然连接的目标地的应用可以选择不再对这些目标地供给明文(应用解密的 HTTP 协定而非 HTTPS)支撑。此选项有助于防止应用因外部源(如后端办事器)供给的网址产生变更而不测回归。请参阅 NetworkSecurityPolicy.isCleartextTrafficPermitted(),懂得更多详情。
例如,应用可能须要确保与 secure.example.com 的所有连接始终经由过程 HTTPS 完成,以防止来自恶意收集的敏感流量。
如不雅未在特定条目中设置值,将应用来自更通用条目中的值。例如,未在 domain-config 中设置的值将大年夜父级 domain-config(如不雅已嵌套)或者 base-config(如不雅未嵌套)中获取。未在 base-config 中设置的值将应用平台默认值。
res/xml/network_security_config.xml:
- <?xml version="1.0" encoding="utf-8"?>
- <network-security-config>
- <domain-config cleartextTrafficPermitted="false">
- <domain includeSubdomains="true">secure.example.com</domain>
- </domain-config>
- </network-security-config>
固定证书
一般情况下,应用信赖所有预装 CA。如不雅有预装 CA 签发讹诈性证书,则应用将面对被中心人进击的风险。有些应用经由过程限制信赖的 CA 集或经由过程证书固定来选择限制其接收的证书集。
请留意,应用证书固准时,您应始终包含一个备份密钥,如许,当您被强迫切换到新密钥或更改 CA 时(固定到某个 CA 证书或该 CA 的中心证书时),您应用的连接性不会受到影响。不然,您必须推送应用的更新以恢复连接性。
推荐阅读
比来线上 MySQL 接连产生了几起数据异常,都是在凌晨爆发,因为营业场景属于典范的数据仓库型应用,日间压力较小无法复现。甚职苄些异常还比较诡异,最后 root cause 分析颇费周折。那实际营业傍边咱们若何能快速的定>>>详细阅读
本文标题:Android网络安全性配置
地址:http://www.17bianji.com/lsqh/36449.html
1/2 1