Charles Proxy

2020-07-22

img

使用Charles对移动设备进行HTTPS抓包 默认是不可用的

  1. homepage –> Proxy –> Proxy Settings

    设置proxy接收端口和对外访问需要用到的端口

  2. homepage –> Help –> SSL Proxying –> Install Charles Root Certificate on a Mobile Device or Remote Browser

需要安装SSL的certificate

IOS 设备适配

IOS设备 需要下载Charles的根证书, chls.pro/ssl , 允许下载 –> 安装藐视文件 –> 完全信任

Android 设备适配

Androi7.0之后的版本,增加了证书验证,APP内不再默认信任用户设备的证书。

  1. 在res底下创建一个xml文件夹,然后在内部创建一个名为 “network_security_config.xml”的文件,文件内容如下:

     <network-security-config>
         <base-config cleartextTrafficPermitted="true">
             <trust-anchors>
                 <certificates src="system" overridePins="true" />
                 <certificates src="user" overridePins="true" />
             </trust-anchors>
         </base-config>
     </network-security-config>
    
  2. 在AndroidManifest里的标签中,添加代码:

     android:networkSecurityConfig="@xml/network_security_config"
    

    Note: 这个方法仅供测试使用,会有一些安全隐患,可以参考底部的几个文章改进。

注意事项

  • 移动设备和proxy host在同一个 WI-FI SSID内
  • proxy可以限制需要访问的域名地址
  • proxy host的防火墙设置需要更改

参考原文1

参考原文2

参考原文3