【问题标题】:How to configure SSL certificates with Charles Web Proxy and the latest Android Emulator on Windows?如何在 Windows 上使用 Charles Web Proxy 和最新的 Android Emulator 配置 SSL 证书?
【发布时间】:2011-04-27 23:08:41
【问题描述】:

我想使用 Charles 网络代理在 Windows 中使用 Android 模拟器。我已经成功设置了 charles 并使用命令行启动了模拟器:

emulator -http-proxy 127.0.0.1:8888 @NexusOne

我可以看到来自 Charles 中的 android 模拟器的流量,但问题是我正在开发一个使用 SSL 的实时 API,我不确定如何配置 Charles 让我播放数据被发送和接收。我知道在 Charles 中设置 SSL 的两个区域(代理 -> 代理设置 -> SSL 和代理 -> 客户端 SSL 证书)但我找不到任何体面的文档让我可以做我想做的事.有没有人有查尔斯的经验,或者一般的证书,谁可以解释如何实现这一点。也许证书入门也很好,因为我似乎不知道为什么这如此困难。

【问题讨论】:

  • 模拟器命令是什么?你是怎么用的?

标签: android ssl ssl-certificate webproxy charles-proxy


【解决方案1】:

这里提到的认证安装步骤都是正确的https://stackoverflow.com/a/35200795/865220

但是,如果您像我一样不得不为每个新网址单独启用 SSL 代理,那么要为所有主机名启用,只需在 SSL 代理设置中的主机和端口名称列表中输入 *,就像这样:

【讨论】:

    【解决方案2】:

    要使用 charles 远程捕获 http 或 https 流量,您需要执行以下操作:

    HOST - 运行 Charles 并托管代理的机器 CLIENT - 用户的机器生成您将捕获的流量

    主机

    1. 安装完全许可的 charles 版本
    2. 代理 -> 代理设置 -> 勾选“启用透明 HTTP 代理”
    3. 代理 -> SSL 代理设置 -> 勾选“启用 SSL 代理”
    4. 代理 -> SSL 代理设置 -> 单击添加按钮并在两个字段中输入 *
    5. 代理 -> 访问控制设置 -> 添加本地子网(例如:192.168.2.0/24)以授权本地网络上的所有计算机使用另一台计算机的代理
    6. 建议在 charles 中设置“自动保存工具”,这将自动保存和轮换 charles 日志。

    客户端机器:

    1. 安装并永久接受/信任 charles SSL 证书
      http://www.charlesproxy.com/documentation/using-charles/ssl-certificates/
    2. 配置 IE、Firefox 和 Chrome 以使用 charles 托管代理的套接字(例如:192.168.1.100:8888)

    当我对此进行测试时,我拿起了两行 Facebook HTTPS 聊天(一行是给某人,另一行是 FROM)

    如果您使用以下方式启动模拟器,您也可以通过这种方式捕获 android 模拟器流量:

    emulator -avd <avd name> -http-proxy http://local_ip:8888/
    

    其中 LOCAL_IP 是您计算机的 IP 地址,而不是 127.0.0.1,因为那是模拟手机的 IP 地址。

    来源:http://brakertech.com/capture-https-traffic-remotely-with-charles/

    【讨论】:

    • Install and permanently accept/trust the charles SSL certificate 嗯,这不安全,是吗?我宁愿不要让任何人对我施加 MITM。
    • 找到了解决方案:codeblog.shape.dk/blog/2014/01/06/…
    • 我的 Charles 代理版本中没有 SSL 选项卡... (v4)
    • @fgysin 选项卡有它自己的设置页面。它可以通过 Proxy --> SSL Proxying Settings 打开
    • @SalmanAbbas 所写内容的更新:永久接受/信任证书实际上不再是安全风险,因为 Charles 唯一地生成它。这意味着您甚至可以信任实时设备上的 SSL 根证书,而不会增加太多风险。
    【解决方案3】:

    这些东西帮助了我

    1. 转到代理 -> SSL 代理设置 -> 添加
    2. 在此处添加您的站点名称并提供端口号为 8888

    1. 在左侧面板上右键单击您的站点名称,然后选择“启用 SSL 代理”

    希望这对那里的人有所帮助。

    【讨论】:

      【解决方案4】:

      在 Charles 中,转到代理>>代理设置并选择 SSL 选项卡。将您的主机添加到位置列表。

      例如,如果您的安全呼叫将转到 https://secure.example.com,您可以输入 secure.example.com 或 *.example.com。

      完成上述操作后,您可能需要右键单击 Charles 主窗口中的调用并选择 SSL 代理选项。

      希望这会有所帮助。

      【讨论】:

      • 2017:不要忘记安装 Charles SSL 证书:CharlesProxy.com/getssl
      • @salonMonsters 出于某种原因,该网站在我的 android 模拟器上没有做任何事情......只是说如果操作系统配置为允许证书会这样做
      • 我在代理设置中没有看到任何 SSL 选项卡
      • @Hlung 你应该直接在代理菜单下看到它作为“SSL代理设置”
      • 这些说明是旧的/不正确的。正确的方法是“代理”>“SSL 代理设置...”。确认 v4.2.7。苹果系统。适用于评估版。
      【解决方案5】:

      Charles 提供 HTTPS 代理的方式发生了一些变化。

      首先,证书安装选项已移至帮助菜单。

      Help -> SSL Proxying -> Install Charles Root Certificate
      Help -> SSL Proxying -> Install Charles Root Certificate in iOS Simulators
      

      其次,从 iOS 9 开始,您必须在您的 Info.plist 中提供 NSAppTransportSecurity 选项,如果您希望 Charles 作为中间人正常工作,您必须添加:

      <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
      <true/>
      

      作为您的域的一部分,请参阅完整示例:

      <key>NSExceptionDomains</key>
          <dict>
              <key>yourdomain.com</key>
              <dict>
                  <key>NSIncludesSubdomains</key>
                  <true/>
                  <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
                  <true/>
                  <key>NSTemporaryExceptionMinimumTLSVersion</key>
                  <string>TLSv1.1</string>
              </dict>
      

      原因是(我猜想)Charles 在充当中间 https 服务器的人之后,在某些时候以清晰的 http 进行通信。

      最后一步是在 Charles 中为此域激活 SSL 代理(右键单击域并选择启用 SSL 代理)

      【讨论】:

        【解决方案6】:

        这里值得一提的是在 Android 设备中执行此操作的分步说明。 iOS 应该是一样的:

        1. 打开查尔斯
        2. 转到代理 > 代理设置 > SSL
        3. 选中“启用 SSL 代理”
        4. 选择“添加位置”并输入主机名和端口(如果需要)
        5. 单击确定并确保选中该选项
        6. 从这里下载 Charles 证书:Charles cert >
        7. 通过电子邮件将该文件发送给自己。
        8. 在您的设备上打开电子邮件并选择证书
        9. 在“为证书命名”中输入您想要的任何内容
        10. 单击“确定”,您应该会收到证书已安装的消息

        然后您应该能够在 Charles 中看到 SSL 文件。如果您想拦截和更改值,您可以使用非常棒的“地图本地”工具:

        1. 在 Charles 中转到工具 > 地图本地
        2. 选择“添加条目”
        3. 输入要替换的文件的值
        4. 在“本地路径”中选择您希望应用加载的文件
        5. 点击确定
        6. 确保该条目已被选中并单击“确定”
        7. 运行您的应用
        8. 您应该会在“注释”中看到您的文件加载而不是实时文件

        【讨论】:

        【解决方案7】:

        对我有用的东西 - 真的应该转移到 iPhone 上:

        查尔斯

        1. 启用透明 Http 代理
        2. 启用 SSL 代理
        3. 右键单击传入请求并选择 SSL 代理

        苹果机

        1. 下载 Charles CA 证书包http://www.charlesproxy.com/ssl.zip
        2. 给自己发电子邮件 charles-proxy-ssl-proxying-certificate.crt

        iPhone

        1. 在端口 8888 上为 Charles 启用 http 代理
        2. 选择并安装电子邮件附件,是的,相信它!

        瞧,您现在可以查看来自 SSL 代理中添加的域的加密流量

        【讨论】:

          【解决方案8】:

          您还应该从 Charles 帮助菜单中单击“安装 Charles CA SSL 证书..”。在http://blog.noodlewerk.com/general/tutorial-using-charles-proxy-to-debug-https-communication-between-server-and-ios-apps/查看更多详细说明

          【讨论】:

            猜你喜欢
            • 2016-07-22
            • 2019-06-16
            • 1970-01-01
            • 2018-05-20
            • 1970-01-01
            • 2014-07-07
            • 2014-08-14
            • 2011-04-17
            • 1970-01-01
            相关资源
            最近更新 更多