网络安全配置

在 Android 7.0 以上的系统中,Google 引入了一种名为网络安全配置(Network Security Configuration)的功能。具体详细介绍可见官方文档

简单介绍用于配置调试模式(在android:debuggable=true)的 CA

  1. 将信任文件放在res/raw 文件夹下
  2. 添加信任附加 CA 到res/xml (network_security_config)
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <debug-overrides>
        <trust-anchors>
            <certificates src="@raw/debug_ca"/>
        </trust-anchors>
    </debug-overrides>
</network-security-config>
  1. 配置清单文件
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
    <application android:networkSecurityConfig="@xml/network_security_config"
                    ... >
        ...
    </application>
</manifest>

在7.0+上手机安装证书也不可访问的https请求的疑问?

目的地不在 [domain-config] 涵盖范围内的所有连接所使用的默认配置。

  1. 未设置的任何值均使用平台默认值。面向 Android 7.0(API 级别 24)及更高版本应用的默认配置如下所示:
<base-config cleartextTrafficPermitted="true">
    <trust-anchors>
        <certificates src="system" />
    </trust-anchors>
</base-config>
  1. 面向 Android 6.0(API 级别 23)及更低版本应用的默认配置如下所示:
<base-config cleartextTrafficPermitted="true">
    <trust-anchors>
        <certificates src="system" />
        <certificates src="user" />
    </trust-anchors>
</base-config>

7.0+默认配置没有user,所以当证书安装到手机上时,也不会被项目信任。所以很多手机即便安装了证书还是不可访问https请求。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 基础概念 HTTP HTTP协议工作于 客户端-服务端架构上。通常,由HTTP客户端发起一个请求,建立一个到服务器...
    Simplelove_f033阅读 1,617评论 0 0
  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom阅读 2,735评论 0 3
  • 说到网络安全,首先想到的是Https喽,可是Android中的Https,你真的能掌控得住嘛?本文介绍一个Andr...
    VictorLiang阅读 1,425评论 0 3
  • 有一只英系博美,叫大半;有一只玄猫,叫做水令。他们俩的生活轨迹本应当是风马牛不相及的两条平行线,可是偏偏命运...
    Player_LiuM阅读 224评论 4 1
  • 《豪宝宝说英语》豪宝宝一岁一个月左右时,琪姐姐爱上了唱PPAP这首歌,这首歌里面有个英语单词apple,我也魔性般...
    猫咪猫91阅读 364评论 0 0