美文网首页
Android 7.0以上 无法抓取Https包解决办法

Android 7.0以上 无法抓取Https包解决办法

作者: 徘徊0_ | 来源:发表于2020-02-19 00:13 被阅读0次

    Android 官网:网络安全配置

    近期升级了targetSdkVersion到28,发现无法抓取到https请求包,查看了一下,Google修改安全策略了

    默认配置
    • Android6.0 (API 级别 23)及更低版本应用的默认配置如下所示:
        <base-config cleartextTrafficPermitted="true">
            <trust-anchors>
                <certificates src="system" />
                <certificates src="user" />
            </trust-anchors>
        </base-config>
        
    
    • Android 7.0(API 级别 24)Android 8.1(API 级别 27)的应用的默认配置如下所示:
        <base-config cleartextTrafficPermitted="true">
            <trust-anchors>
                <certificates src="system" />
            </trust-anchors>
        </base-config>
    
    • Android 9(API 级别 28)及更高版本应用的默认配置如下所示:
    <base-config cleartextTrafficPermitted="false">
            <trust-anchors>
                <certificates src="system" />
            </trust-anchors>
        </base-config>
    
    分析&解决

    6.0---> 7.0 可以发现,默认配置少了 <certificates src="user" /> 也就是不信任用户添加的CA证书(ps: 所以抓包工具请求Https包的时候会失败)。9.0 更严格,默认不信任用户添加的CA证书,还禁止了http明文请求

    最简单的方式就是项目修改为使用 Android6.0的默认配置

    1.修改targetSdkVersion = 23
    2.新建 network_security_config.xml 文件,目录结构如下图:

    image.png
    3.network_security_config.xml 文件内容如下:
    <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
        <base-config cleartextTrafficPermitted="true">
            <trust-anchors>
                <certificates src="system" />
                <certificates src="user" />
            </trust-anchors>
        </base-config>
    </network-security-config>
    

    4.将刚新建的xml文件添加到清单文件中,如下图:

    image.png

    附:仅在debug模式下允许抓包配置如下:

    <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
        <debug-overrides>
            <trust-anchors>
                <certificates src="system" />
                <certificates src="user" />
            </trust-anchors>
        </debug-overrides>
    </network-security-config>
    

    相关文章

      网友评论

          本文标题:Android 7.0以上 无法抓取Https包解决办法

          本文链接:https://www.haomeiwen.com/subject/yikofhtx.html