Fiddler安卓7.0以上HTTPS抓包及安卓9.0以上http抓包

Fiddler安卓7.0以上HTTPS抓包及安卓9.0以上http抓包

问题:Android7.0及以上https无法抓包

升级了 targetSdkVersion 到 28 后发现在 Android 7.0 以上机型 Fiddler 抓取 https 包时显示找不到证书

问题原因

Android 6.0 network配置文件


<base-config cleartextTrafficPermitted="true">
    <trust-anchors>
        
        <certificates src="system" />
        
        <certificates src="user" />
    trust-anchors>
base-config>

Android 7.0 -8.1 network配置文件


<base-config cleartextTrafficPermitted="true">
    <trust-anchors>
        
        <certificates src="system" />
    trust-anchors>
base-config>

Android 9.0 network配置文件


<base-config cleartextTrafficPermitted="false">
    <trust-anchors>
        
        <certificates src="system" />
    trust-anchors>
base-config>

解决方案

在项目的res/xml中增加network_security_config.xml


<network-security-config>
    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" />
            <certificates src="user" />
        trust-anchors>
    base-config>
network-security-config>

这样我们的应用在生产上就可能被抓包了,为了安全我们只有在debugger模式才允许抓包。
只在android:debuggable为true时才生效的配置


<network-security-config>
    
    <debug-overrides>
        <trust-anchors>
            <certificates src="system" />
            <certificates src="user" />
        trust-anchors>
    debug-overrides>
network-security-config>

Manifest中:


<manifest ... >
    <application android:networkSecurityConfig="@xml/network_security_config"
                    ... >
        ...
    application>
manifest>

Android 9.0允许部分 http 请求

Android 9.0允许部分 http 请求



<network-security-config>
    
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">sample.domaindomain>
    domain-config>
    
    <debug-overrides>
        <trust-anchors>
            <certificates src="system" />
            <certificates src="user" />
        trust-anchors>
    debug-overrides>
network-security-config>

Fiddler是一个轻量级的http抓包工具,且有良好的用户界面,实用强大易上手。通过设置代理接受处理所有的http请求和响应,可以很轻松的对手机上的安卓应用进行抓包。

Fiddler下载地址:http://www.telerik.com/fiddler

你可能感兴趣的:(https,android)