我想使用Charles web proxy在Windows中使用Android模拟器。我已经成功地设置了charles,并使用命令行启动了模拟器:
emulator -http-proxy 127.0.0.1:8888 @NexusOne
我可以在Charles中看到来自android模拟器的流量,但问题是我正在开发一个使用SSL的实时API,我不确定如何配置Charles让我处理发送和接收的数据。我知道在Charles中设置了两个-> (代理->代理设置SSL和代理->客户端SSL证书),但我找不到任何像样的文档让我做我想做的事情。任何人都有使用Charles或证书的经验,可以解释如何实现这一点。也许证书入门也会很好,因为我似乎缺乏关于为什么这是如此困难的知识。
发布于 2010-11-12 09:55:38
在Charles中,转到Settings并选择Proxy>>Proxy选项卡。将您的主机添加到位置列表。
例如,如果您的安全呼叫要转到https://secure.example.com,则可以输入secure.example.com或*.example.com。
完成上述操作后,您可能需要在Charles主窗口中右键单击该调用,然后选择SSL代理选项。
希望这能有所帮助。
发布于 2016-02-04 20:16:12
在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/>
作为your domains的一部分,请参阅完整示例:
<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代理)
发布于 2011-12-03 21:57:12
您还应单击“安装Charles CA SSL证书..”从Charles Help菜单。有关更多详细说明,请访问http://blog.noodlewerk.com/general/tutorial-using-charles-proxy-to-debug-https-communication-between-server-and-ios-apps/
https://stackoverflow.com/questions/3976728
复制相似问题