【问题标题】:iOS - Using Charles with Alamofire and SSLiOS - 将 Charles 与 Alamofire 和 SSL 一起使用
【发布时间】:2015-10-08 09:14:53
【问题描述】:

我无法让 Charles 与 Alamofire 一起工作,我总是得到:

SSLHandshake:握手期间远程主机关闭连接 您可能需要配置您的浏览器或应用程序以信任查尔斯根证书。请参阅“帮助”菜单中的 SSL 代理。

我确实在 iOS 模拟器中安装了 Charles 根证书,并添加了要连接到 SSL 代理设置的主机。你有什么进一步的建议吗? 非常感谢!

【问题讨论】:

    标签: ios alamofire charles-proxy


    【解决方案1】:

    在 iOS11 上,我错过了这个额外的步骤。

    Settings 应用程序中,

    导航到General.About.Certificate settings

    启用Charles Proxy SSL Proxying 开关。

    【讨论】:

      【解决方案2】:

      这可能是由于在 iOS 9 中添加了 App Transport Security。要允许 Charles 访问 SLL 流量,您需要将以下内容添加到应用的 Info.plist:

      <key>NSAppTransportSecurity</key>
          <dict>
            <key>NSAllowsArbitraryLoads</key>
            <true/>
         </dict>
      

      (来自Charles' FAQ on the subject

      注意:您可能只想出于调试目的执行此操作,而不是在发布您的应用时基本上禁用 ATS。

      【讨论】:

        【解决方案3】:

        除了 Thor 描述的 NSAppTransportSecurity,您还必须信任证书。如果您进入 Charles 的“帮助”菜单,您将看到一个“SSL 代理”子菜单。当我从该子菜单中选择“安装查尔斯根证书”和“在 iOS 模拟器中安装查尔斯根证书”时,我就能够成功代理 https 请求。显然,我还将有问题的主机添加到“代理”-“SSL 代理设置”中(例如,端口为 * 和完整的主机名)。

        【讨论】:

          猜你喜欢
          • 2015-05-27
          • 1970-01-01
          • 2015-06-18
          • 1970-01-01
          • 1970-01-01
          • 2016-02-25
          • 2017-07-14
          • 2018-05-12
          • 1970-01-01
          相关资源
          最近更新 更多