关于自开发App在Android7.0+设备下SSL捕获异常的说明 - Mobile Debug

返回列表Mobile Debug 介绍与使用

关于自开发App在Android7.0+设备下SSL捕获异常的说明

2019-03-28 14:35
代理

表现:安卓设备已安装测试证书的情况下,webview加载https页面时界面展示为空白或弹窗提示证书过期或异常,https请求发起失败,同时Mobile Debug界面抓包提示:image.png



Android系统对于证书是分为,系统预装证书 和 用户安装证书

其中Android 6.0(API 级别 23) 及更低版本,应用默认信任 系统预装证书和用户安装证书

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

Android 7.0(API 级别 24) 以后则默认仅信任 系统预装证书。

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


您可通过【添加安全配置文件】的方式增加对测试证书的支持:

首先,需要 在 manifest 处声明配置文件

<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
    <application android:networkSecurityConfig="@xml/network_security_config"
                    ... >
        ...
    </application>
</manifest>


然后编辑network_security_config.xml

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


最后重新编译apk即可测试。

更多资料您可查看:https://developer.android.google.cn/training/articles/security-config.html


如果您只想调试http数据,https部分的数据不需要捕获解析,您可以在Mobile Debug的【代理捕获列表窗口】的右上角【设置】界面中找到【代理SSL捕获规则设置】将【启用SSL捕获】关闭即可。

image.png


注意,该操作捕获到的ssl请求Method将始终为Tunnel,如下:

image.png

正在提交您的问题或建议,请不要关闭页面.

您的问题或建议已提交成功,感谢您一如既往的支持与关注.
关闭弹窗

点击刷新验证码

确认并提交

QQ交流反馈群:665457660