Nginx下搭建https解决iOS 7.1 itms-services安装失效

IOS7.1更换plist文件访问的http协议为https

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

更换链接未https

第一步很简单将网页中连接到plist的http换成https

1
2

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

改为

1
2

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

让服务支持https,环境:阿里云Ubuntu12.04 Nginx

愿意花钱买第三方证书的绕道啊,不过话说第三方的证书也不是很贵的,不过为了分发下app测试还是自己给自己颁发证书吧

首先检查是否安装openssl openssl version -a,木有安装的童鞋

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

生成私钥和证书

http://heyuan110.com
生成私钥,命令行执行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,打开ssl相关的配置

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

再加https访问试试 ~_~

注:在mac下安装nginx环境的,请将crt和key文件拷贝到/usr/local/etc/nginx这个目录下,当然同样是配置nginx.conf文件啦