Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Charles Proxy不适用于7.0以上的Android版本?_Android_Ssl_Charles Proxy_Request Response - Fatal编程技术网

Charles Proxy不适用于7.0以上的Android版本?

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"> 应用程序标记中的清单文件 使用名

很长一段时间以来,我一直在使用Charles拦截请求和响应,但当我尝试以Android Oreo为目标的google pixel时,它总是给我一个握手例外。我知道他们的某些改变对网络安全毫无意义。任何形式的帮助都将不胜感激。

如果您在Android上使用Charles on Device tar时遇到问题,请遵循以下步骤

  • 添加以下行

    android:networkSecurityConfig="@xml/network_security_config"> 
    
    应用程序标记中的清单文件

  • 使用名为网络安全配置的文件创建一个xml文件夹,并在其中粘贴以下代码

  • 另一个答案也是正确的,但根据
    基本配置,根本不需要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)