1. 程式人生 > >關於安卓7.0及以上的Https請求抓包問題android:networkSecurityConfig

關於安卓7.0及以上的Https請求抓包問題android:networkSecurityConfig

Android 7.0(API 級別 24)及更高版本預設只承認系統CA,所以預設是安全的,不需要配置。如果想要系統承認使用者自己安裝的CA,則修改配置(比如除錯時會需要抓包)。

面向 Android 6.0(API 級別 23)及更低版本應用的預設配置如下所示,這段配置的意思是,承認系統CA和使用者自己安裝的CA,但這是一個預設配置,目前在6.0及以前好像都不起作用,即使去掉了user,依然承認自己安裝的CA,不能確保100%防止https抓包

<?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>

面向 Android 7.0(API 級別 24)及更高版本應用的預設配置如下所示,即只承認系統CA,如果要承認自己安裝的CA,像上述6.0配置那樣加上user即可

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
    <trust-anchors>
        <certificates src="system" />
    </trust-anchors>
</base-config>
</network-security-config>

實際操作:
1、在res/xml/下建立network_security_config.xml檔案
2、檔案寫入上述配置
3、在清單檔案的application標籤下,引入此配置

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

官方地址:https://developer.android.com/training/articles/security-config#ConfigCustom