升级到ios7.1之后,之前用adhoc证书或企业证书发布的在线安装app都提示“无法安装应用程序,因xxx.com的证书无效”,查找官方文档得知其实iOS 7.1修改了plist文件的访问协议,之前可以通过http协议访问的,在iOS 7.1之后必须使用https协议访问了。

更换http协议为https

将网页中连接到plist的http换成https

1
<a href="itms-services://?action=download-manifest&amp;url=http://test.heyuan110.com/test/test.plist">安装IOS BetaV1.0</a>

改为

1
<a href="itms-services://?action=download-manifest&amp;url=https://test.heyuan110.com/test/test.plist">安装IOS BetaV1.0</a>

安装openssl

ssl证书有很多第三方厂商,可购买也有一些提供免费证书。ssl证书也可自签,通常会用到openssl。检查是否安装openssl openssl version -a, 如未安装请执行:

1
2
sudo apt-get install openssl
sudo apt-get install openssl-devel

生成私钥和证书

生成私钥,命令行执行openssl genrsa -des3 -out app.key 1024,截图如下

QQ20140318-1

很清晰了吧,下面继续生成签署申请openssl req -new -key app.key -out app.csr执行这个后下面会需要填一些信息,截图如下,密码的地方可以都输同一个

QQ20140318-2

生成服务器的私钥 openssl rsa -in app.key -out app_server.key ,截图如下

QQ20140318-3

给网站服务器签署证书
openssl req -new -x509 -days 3650 -key app_server.key -out app_server.crt

执行后步骤和第一部差不多,填写完,需要注意的是Common Name一定要填对。

至此我们得到了四个文件,下面配置Nginx

配置Nginx

将app_server.crt和app_server.key两个文件拷贝到/etc/nginx/conf.d目录下,打开test_nginx.conf(nginx配置文件) sudo vi test_nginx.conf

端口设置为443:

1
2
3
ssl on;
ssl_certificate /etc/nginx/conf.d/app_server.crt;
ssl_certificate_key /etc/nginx/conf.d/app_server.key;

注意crt和key文件是绝对路径,需重启nginx。

配置完成截图

QQ20140318-4

重启nginx,sudo service nginx restart