Charles Proxy不适用于7.0以上的Android版本?
很长一段时间以来,我一直在使用Charles拦截请求和响应,但当我尝试以Android Oreo为目标的google pixel时,它总是给我一个握手例外。我知道他们的某些改变对网络安全毫无意义。任何形式的帮助都将不胜感激。如果您在Android上使用Charles on Device tar时遇到问题,请遵循以下步骤Charles Proxy不适用于7.0以上的Android版本?,android,ssl,charles-proxy,request-response,Android,Ssl,Charles Proxy,Request Response,很长一段时间以来,我一直在使用Charles拦截请求和响应,但当我尝试以Android Oreo为目标的google pixel时,它总是给我一个握手例外。我知道他们的某些改变对网络安全毫无意义。任何形式的帮助都将不胜感激。如果您在Android上使用Charles on Device tar时遇到问题,请遵循以下步骤 添加以下行 android:networkSecurityConfig="@xml/network_security_config"> 应用程序标记中的清单文件 使用名
android:networkSecurityConfig="@xml/network_security_config">
应用程序标记中的清单文件另一个答案也是正确的,但根据
基本配置,根本不需要xml标记。虽然没有明确提到这一点,但他们的示例不包括该标记
这是文档站点上“为调试配置CAs”的代码:
res/xml/network\u security\u 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>
为什么会产生安全问题?您只允许用户证书用于调试构建,这在开发过程中是完全正确的。对于发布版本,您只允许根据您的安全配置使用系统证书。@ubuntudroid当您有不同的版本风格时,您是完全正确的。但有一段时间,人们也忘了在发布版本中删除这段愚蠢的代码。(我的笔记是专门为他们写的:D)