返回列表Mobile Debug 介绍与使用

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

2019-03-28 14:35
代理

表现:安卓设备已安装测试CRT中间证书的情况下,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



已root的Android设备


如果您的Android设备已获取root权限,新版本Mobile Debug已支持Android双证书安装请按照[接入新设备]指南中描述同时安装PEM根证书和CRT中间证书

1.png


  1. 将导出的PEM根证书文件(.0结尾)使用adb工具或者拷贝到手机使用root explorer拷贝到Android设备的/system/etc/security/cacerts/ 下。

  2. 将导出的CRT中间证书安装到用户凭据中.


请注意:若检查确认PEM根证书文件已导入系统目录但是证书仍然报不安全问题,请检查导入的证书文件的权限信息,确保和其他证书文件一致(至少要给予所有用户可读权限).




最后,如果您的设备未root无法安装PEM根证书,在安装了中间证书情况下,您可以代理抓包/调试部分浏览器和部分内嵌了webview的APP的HTTPS网页,这取决于具体APP的证书策略,请自行测试.

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

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

即将跳转到新的反馈通道,请在博客评论区留言.
立即前往

点击刷新验证码

确认并提交

QQ交流反馈群:323396003