转:https://laoyur.com/?p=414
iOS7.1中,通过itms-services://方式安装ipa已经发生了改变,.plist文件必须是https://的,.ipa文件的链接则依然可以是http://的。
目前的解决方案大致有以下几种:
- Dropbox大法。
把plist文件放到Dropbox上,生成一个https的下载链接。 - 用StarSSL之类的免费SSL服务获得SSL证书,来加密你的服务器。
- 没钱的穷屌丝可以自建CA,生成自签名SSL证书加密你的服务器,然后为你的CA建一个profile,profile扔到你的http服务器,用户点击即可进行安装。详情请猛击:http://stackoverflow.com/a/22767699
Updated:2014年05月21日
以上是我整理的,但一直未曾真实尝试。今天,实践了一下方案3——自建CA大法。下面把详细步骤和注意事项贴出来。
- 创建CA。钥匙串访问-证书助理-创建证书颁发机构
- 信任该CA。此步骤不是必须的,但建议执行
- 创建csr文件。该文件用于向CA请求生成证书用
- 使用csr文件创建ssl证书。
- 导出CA证书,导出为cer文件。这个cer文件需要安装到用户的iOS设备中。如何安装呢?最简单的办法是将cer文件放到你的网站上让用户通过safari下载。cer文件的URL只要http即可。
- 导出ssl证书,默认导出p12
- 使用openssl将ssl证书的p12文件转换为pem格式。这个pem文件即为最终的SSL证书文件。ssl证书是放在你的服务器上的,用来标示你的server。至于如何把这个pem证书安装到你的server,不同的server则不同,故本文不予叙述。
1
openssl pkcs12 -
in
yourserverdomain.com.p12 -out yourserverdomain.com.pem -nodes -clcerts
以上命令会提示输入密码,就是上面乱设的那个。
好吧,还是补充一下如何在amh的虚拟主机上配置SSL证书。amh默认是不带SSL功能的,在其模块扩展中搜索SSL,会出来个BBShijieSSL-1.1插件,安装并启用即可。配置密钥和证书的时候,以文本方式打开pem文件,将—–BEGIN RSA PRIVATE KEY—–开头部分填到密钥中,将—–BEGIN CERTIFICATE—–开头部分填到证书中,保存即可。
- 接下去就是常规的itms-services://步骤了,相信不用我复述了吧。唯一需要注意的是,plist文件的URL必须是https的。
2 Thoughts on “itms-services://方式安装ipa在iOS 7.1中的变化”