访问设备上的本地开发环境以及Charles Proxy和SSL?

时间:2015-09-02 10:37:27

标签: ssl localhost device mamp-pro charles-proxy

我需要在设备上访问我的本地开发环境( MAMP Pro )。我已经将此工作正常用于我的非SSL网站,但我无法让它适用于我的需要SSL的网站。

我的本​​地开发机器和我的设备都在同一个wifi网络上。在设备的wifi设置中,我将HTTP代理设置为手动,服务器是我的开发环境IP,端口是默认的8888(尽管如果我将其更改为8080仍然有效)。

我已经在MAMP Pro中为local.site1.com设置了一个虚拟主机条目。该url现在可以在我的本地开发环境和设备上运行。

如果我尝试在https://local.site2.com访问我的SSL网站,这可以在开发环境中使用,但设备会显示以下消息:

Safari cannot open the page.

错误是:"There was a problem communicating with the secure web proxy server (HTTPS).".

Charles Proxy似乎是使用hosts文件中指定的域名访问设备上本地开发环境的标准方法,但我很乐意使用任何有效的解决方案。

3 个答案:

答案 0 :(得分:7)

您是否尝试刷新或重新启动它?您可能需要重新检查将HTTP代理设置为手动并重新检查本地开发机器和您的设备是否在同一个wifi网络上。另外,请确保您的IP正确并且代理正在运行。

请注意,如果您对数据请求使用SSL

- 转到代理 - >代理设置 - > SSL - >选中“启用SSL”并添加请求的主机和端口

- 您可能还想从代理下拉列表中停用桌面和网络代理,以便更好地隔离您的应用流量

您可能需要关闭手机数据,以确保所有流量都通过Wi-Fi / Charles Proxy

运行

然后启动Charles并切换到顶部窗口中的“序列”选项卡,以查看实时制作的每个呼叫和状态,包括响应大小和持续时间。单击请求以查看底部窗格中的详细信息,包括:概述,请求,响应和&总结

确保浏览不同数据类型的选项。例如,如果您的回复是图片,则可以看到实际的图片和尺寸。如果您的应用程序使用JSON,您可以选择JSON树导航器,也可以通过右键单击顶部“序列”选项卡中的请求来“复制响应”。将结果粘贴到类似http://www.uize.com/examples/json-prettifier.html的内容中,以便于输出。

在启动期间,请检查

1.您的应用是否会制作合理数量的数据请求以平衡启动时间和预取,以加快“下一页”的速度?

2.是否有任何请求获取的数据超过了必要的数据?

3.由于服务器配置或后端性能不佳,响应时间很长

在APP使用期间检查这些

1.是否有一条常见的导航路径很慢,并且可以从发布时的预取中受益?

2.数据实际上是来自缓存而不是发起新的数据请求吗?

3.是否发送了任何跟踪数据(例如Omniture,Google Analytics或其他第三方服务),如果是这样,是否正确发送? 由于编码错误,是否有任何错误或重复的请求?

4.如果您提供视频,是否选择了正确的编码/格式? (Charles可以限制速度以模仿无线电话连接。) 图像是否适合设备尺寸?

答案 1 :(得分:4)

如果使用Charles,您还需要安装其证书:

iOS 4及更高版本 在设备上,将HTTP代理设置为使用Charles,然后浏览到http://www.charlesproxy.com/getssl以安装证书。

答案 2 :(得分:1)

当然OSX / iOS并不喜欢你注入的证书,因为它并非来自一个被信任的"来源,它只是直接杀死连接。

您可以使用Apple Configurator将证书定义为来自受信任来源。

source

修改

  1. 打开Apple Configurator应用程序并创建一个新的配置文件(准备)。
  2. 在安装选项卡上,禁用"更新iOS"因为我们不想全力以赴。我们只想注入证书。
  3. 然后你进入"安装"选项卡和"设置"你选择证书。 (因为我们无法在此mobileconf中包含.pem文件,所以我们必须将我们的根证书转换为.cert文件,因为它已经存在于钥匙串应用程序中,只需将其导出为.cert文件,在某处您可以将其导出很容易找到它。
  4. 返回Apple Configurator应用程序,选择刚刚导出的.cert根证书,然后通过USB线将mobileconfig推送到手机/设备上。 (系统将提示您接受安装,因为它是"不受信任的"根证书,然后您将完成创建者here解释的步骤以安装.pem证书到设备上。
  5. 在那里,您可以像设置网络设置中的http代理一样设置代理,并在iOS 8上查看所有TLS加密流量