【发布时间】:2018-10-01 22:36:18
【问题描述】:
我一直在使用 Charles 拦截请求和响应,但是当我尝试针对 Android Oreo 的 google 像素时,它一直给我握手异常。我知道他们在 Naught 关于网络安全方面做了一些改变。任何形式的帮助将不胜感激。
【问题讨论】:
标签: android ssl charles-proxy request-response
我一直在使用 Charles 拦截请求和响应,但是当我尝试针对 Android Oreo 的 google 像素时,它一直给我握手异常。我知道他们在 Naught 关于网络安全方面做了一些改变。任何形式的帮助将不胜感激。
【问题讨论】:
标签: android ssl charles-proxy request-response
如果您在 Android 中使用 Charles on Device tar-getting above 7.0 时遇到问题,请按照以下步骤操作,as detailed in the Charles Proxy documentation
添加下面一行
android:networkSecurityConfig="@xml/network_security_config">
到您的应用程序标签中的清单文件。
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config>
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
<debug-overrides>
<trust-anchors>
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>
注意:如果您只有单一的构建风格,请不要将上述内容提交到您的分支。
对于具有不同构建风格(调试/发布/其他)的人,也可以将其用于调试版本和提交。
【讨论】:
另一个答案也是正确的,但根据the documentation base-config xml 标签根本不需要。虽然没有明确提及,但他们的示例不包含该标签。
这是文档站点上“配置 CA 以进行调试”的代码:
res/xml/network_security_config.xml:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<debug-overrides>
<trust-anchors>
<certificates src="@raw/debug_cas"/>
</trust-anchors>
</debug-overrides>
</network-security-config>
我们可以只允许用户安装证书,而不是指定特定的证书,就像在另一个答案中一样:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<debug-overrides>
<trust-anchors>
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>
【讨论】: