IOS应用除了可以正常的在Appstore上面发布外,还可以申请企业证书,自己部署服务器进行发布提供下载;但企业证书在IOS 7.1后,应用的下载需要使用可信任的https发布才能正常下载,否则会提示找不到服务器之类的错误;
首先,需要开发人员生打包一个ipa,并且提供一个plist文件,plist文件可以参考下面的:
plist文件(test.plist):
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<
plist
version
=
"1.0"
>
<
dict
>
<
key
>items</
key
>
<
array
>
<
dict
>
<
key
>assets</
key
>
<
array
>
<
dict
>
<
key
>kind</
key
>
<
string
>software-package</
string
>
<
key
>url</
key
>
<
string
>https://192.168.0.8/test.ipa</
string
>
</
dict
>
</
array
>
<
key
>metadata</
key
>
<
dict
>
<
key
>bundle-identifier</
key
>
<
string
>com.test</
string
>
<
key
>bundle-version</
key
>
<
string
>1.0</
string
>
<
key
>kind</
key
>
<
string
>software</
string
>
<
key
>title</
key
>
<
string
>测试</
string
>
</
dict
>
</
dict
>
</
array
>
</
dict
>
</
plist
>
新建一个页面,假设index.html,内容如下:
1 2 3 |
|
或者
1 |
|
访问:https://192.168.0.8/test.html (使用safari浏览器打开)
注意:plist文件中url的值可以不是https,但页面中,items-services协议后面url参数的必须是https,并且必须是可信任的https,也就是说,如果你在权威机构申请的证书,直接在服务端配置好即可信任,否则,自己生成的证书,客户端必须安装ca证书才能被信任;另外,记得提醒用户只能在safari浏览器中下载,其他浏览器不识别itms-services协议;
如果需要在局域网下载,只能自己生成证书,生成步骤如下:
1.生成服务器的私钥
1 |
|
2.生成签署申请(注意除Common Name以外可以为空,Common Name必须为服务器的ip或域名)
1 |
|
3.生成CA私钥
1 |
|
4.利用CA的私钥产生CA的自签署证书
1 |
|
5.在当前目录创建demoCA,里面创建文件index.txt和serial,serial内容为01,index.txt为空,以及文件夹newcerts
1 |
|
这样,生成了的文件中有 server.crt,server.key, ca.crt
将 server.crt,server.key配置到服务器上,apache、nginx各不相同,百度一下,很多配置说明的文章,这里就不重述了;另外将ca.crt放入服务根目录,以便用户能访问安装;
服务端配置好证书并重启服务后,此时可以访问https://192.168.0.8/test.html,但仍然不是完全授信的,用户端必须安装ca.crt,才能正常下载;引导用户端访问http://192.168.0.8/ca.crt, safari会直接跳转证书安装界面,安装好证书以后,通过https://192.168.0.8/test.html才能正常下载
原创文章,转载请注明出处: