如何为itunesapp store设置一个caching代理服务器

我想为苹果itunes商店设置一个caching代理服务器,以加速本地局域网中的应用下载。

情况:

  • 本地互联网的速度很慢,带宽有限,所以需要一段时间从iTunes商店下载整个应用程序。
  • 我想要这样做,以加快在WiFi热点情况下的应用程序下载速度。 所以我只需要加快一个应用程序的下载速度,这个下载速度会被很多人在本地局域网下载很多次。

对于iTu​​nes下载必须涉及到用户authentication和购买,似乎没有明显的方式来做caching。

那么这个加速可能如何呢?

我同意上面的答案,因为苹果公司正在使用强大的encryption技术,使用第三方应用程序所说的话可能并不容易。

苹果有它自己的解决scheme,OS X服务器,它有一个function称为caching服务器:

https://www.apple.com/osx/server/features/#caching-server

caching服务器通过App Store,Mac App Store,iTunes Store,iTunes U和iBooks Store加速下载和交付软件。 而现在它可以用在更多的networking环境中,因为它支持在非NATnetworking中caching内容。 当您networking上的用户从Apple下载新软件时,副本会自动存储在您的服务器上。 因此,下一次networking上的其他用户更新或下载相同的软件时,他们实际上是从networking内部进行访问的。

这不是免费的,但它是做你想做的事情

这可能是不可能的,因为我认为iTunes只能通过SSL安全通道传输,因此不能在没有大量黑客和定制软件的情况下被拦截。 我认为这是他们的意图,你不能轻易获得软件包。

iTunes购买发生在SSL上,所以这让人难以置信。 最重要的是,每个设备的UUID现在(通常)绑定到每个下载中,以便每次下载实际上稍有不同。

这不会按照你想要的方式工作。

您将需要设置本地MITM SSL代理服务器,然后将stream量转移到高速caching代理以获取下载的实际位数。 这可以工作,除非iTunes / iOS正在对提供的SSL证书进行encryption检查。 在这种情况下,这是不可能的。 值得与MITM SSL代理商核对,看看你是否可以通过伪造证书…如果这样的话,那么这一切都落到了位置。

您可以尝试使用SSL MITM(Man in the Middle)代理服务器,这些代理服务器都可以使用,包括商业和开源(ly)。

有两件事情需要注意,如果iTunes严格检查证书字段,这可能无法正常工作。 正如@MDmarra上面提到的设备UUIDs可能是一个问题。 这完全是应用程序(iTunes)的依赖。

被代理的HTTPS请求被代理终止并重新发送到远程networking服务器。 呈现给客户端(即Web浏览器)的服务器证书由代理dynamic生成/签名,并包含与原始Web服务器证书大部分相同的字段。 主题DN,序列号,有效date和扩展名被保留。 但是,颁发者DN现在被设置为代理的自签名证书的名称,并且代理的公钥/私钥用于创build伪造的证书。 这些伪造的证书被代理caching(在内存中),以获得更好的性能。

来自: http : //crypto.stanford.edu/ssl-mitm/

也是一个很好的尝试同一件事的人的问题:

https://nabla-c0d3.github.io/blog/2013/08/20/intercepting-the-app-stores-traffic-on-ios/

在那篇文章中有一个叫做iOS SSL Kill Switch的应用程序。 这并不是你所需要的,但它可能是一个难题。