我一直在使用 Charles 拦截请求和响应,但是当我尝试针对 Android Oreo 的 google 像素时,它一直给我握手异常。我知道他们的某些更改已经在 Naught 关于网络安全方面进行了。任何形式的帮助将不胜感激。
问问题
9160 次
2 回答
17
如果您在 Android 中使用 Charles on Device 目标获得高于 7.0 时遇到问题,请按照Charles Proxy 文档中详细说明的步骤操作
添加以下行
android:networkSecurityConfig="@xml/network_security_config">
到应用程序标签中的清单文件。
- 使用名为network_security_config的文件创建一个 xml 文件夹,并在其中粘贴以下代码。
<?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>
注意:如果您只有单一构建风格,请不要将上述内容提交到您的分支。
对于具有不同构建风格(调试/发布/其他)的人,也可以将其用于调试版本和提交。
于 2018-04-21T10:20:08.817 回答
0
另一个答案也是正确的,但是根据文档,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>
于 2020-11-06T12:08:10.207 回答