iOS7.1企业应用"无法安装应用程序 因为证书无效"的解决方案
今天升级了iOS7.1后发现通过之前的url无法安装企业应用了,一直提示“无法安装应用程序 因为http://xxx.xxx.xxx证书无效”,折腾了一番,终于在StackOverFlow上找到了答案。在这里分享给大家。
StackOverFlow链接:http://stackoverflow.com/questions/20276907/enterprise-app-deployment-doesnt-work-on-ios-7-1/22325916#22325916
原因是由于iOS7.1要安装企业应用,url必须是https的,不能是http,这就要求我们的服务器要支持https。因此,只要将原链接:
- itms-services://?action=download-manifest&url=http://example.com/manifest.plist
改为
- itms-services://?action=download-manifest&url=https://example.com/manifest.plist
即可。
对于服务器,则需要增加对https的支持,本人用的是apache服务器,所以在这里以apache服务器为例:
1. 安装配有SSL模块的apache版本,本人使用的是httpd-2.0.65-win32-x86-openssl-0.9.8y
2. 打开apache的配置文件conf/httpd.conf,去掉以下内容前的#
- LoadModule ssl_module modules/mod_ssl.so
并在文件最后加上:
- <VirtualHost *:8080>
- ServerAdmin zhaoxinyan12@mails.tsinghua.edu.cn(随意)
- DocumentRoot D:/Server(服务器根目录)
- ServerName 166.111.81.xxx(服务器域名或ip地址)
- ErrorLog logs/test-error_log
- CustomLog logs/test-access_log common
- SSLEngine on
- SSLCertificateFile "D:/Program Files/Apache Group/Apache2/conf/ssl.crt/server.crt"(之后生成证书的完整路径)
- SSLCertificateKeyFile "D:/Program Files/Apache Group/Apache2/conf/ssl.key/server.key" (之后生成密钥的完整路径)
- </VirtualHost>
3. 修改conf/ssl.conf文件的以下内容:(以下为修改完的,大家可以参考下)
- #SSLSessionCache none
- #SSLSessionCache shmht:logs/ssl_scache(512000)
- SSLSessionCache shmcb:logs/ssl_scache(512000)
- #SSLSessionCache dbm:logs/ssl_scache
- ...
- SSLCertificateFile conf/ssl.crt/server.crt
- ...
- SSLCertificateKeyFile conf/ssl.key/server.key
4. 在conf目录下创建ssl.crt和ssl.key目录(不创建也行,只要保证以上两个路径和之后的文件路径对应即可)
5. 在命令行下切换到apache目录下的bin目录,运行以下命令
生成服务器的私钥:
- openssl genrsa -out server.key 1024
6. 生成签署申请(注意除Common Name以外可以为空,Common Name必须为服务器的ip或域名):
- openssl req -new –out server.csr -key server.key -config ..\conf\openssl.cnf
7. 生成CA私钥:
- openssl genrsa -out ca.key 1024
8. 利用CA的私钥产生CA的自签署证书(注意除Common Name以外可以为空,Common Name必须为服务器的ip或域名):
- openssl req -new -x509 -days 365 -key ca.key -out ca.crt -config ..\conf\openssl.cnf
9. 在当前目录创建demoCA,里面创建文件index.txt和serial,serial内容为01,index.txt为空,以及文件夹newcerts。
10. CA为网站服务器签署证书:
- openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config ..\conf\openssl.cnf
11. 最后将server.crt,server.key复制到上文对应的路径下:
- conf/ssl.crt/server.crt
- conf/ssl.key/server.key
12. 重启Apache服务器,即增加了https的支持。可以在浏览器访问https://localhost试试。如果不行,可以在logs\test-error_log文件中看看出了什么错误。
13. 最后,我们要将自己创建的CA证书安装到iphone上。将第10步生成的ca.crt文件通过邮件发送到iphone上,用自带的Mail程序(别的程序不行)打开安装即可。
14. 现在,再次访问我们之前的itms-services链接,就可以正常安装了。
这种方法如果大家觉得麻烦的话可以把plist和ipa传到dropbox上,获取静态链接,因为dropbox的服务器支持https且有第三方发布的证书,唯一的缺点是国内可能会慢一些。
iOS7.1企业应用"无法安装应用程序 因为证书无效"的解决方案的更多相关文章
- 利用用户自己的server、tomcat下的解决iOS7.1企业应用无法安装应用程序 由于证书无效的问题
1.环境 )操作系统:Windows server 2003.Windows server2008 )JDK:jdk 1.6 )apache-tomcat-6.0.35(注意版本号号,版本号6.0.1 ...
- iOS 应用"无法安装应用程序 因为证书无效"的解决方案
原因是由于iOS7.1要安装企业应用,url必须是https的,不能是http,这就要求我们的服务器要支持https.因此,只要将原链接: itms-services://?action=downlo ...
- ios7.1安装提示"无法安装应用程序 由于证书无效"的解决方式二(dropbox被封项目转移到Appharbor上)
6月18日起dropbox被天朝封了(这个真是无力吐槽),而ios7.1要求使用ssl安全连接,则须要又一次找到一个支持https的免费server. Appharbor是个不错的选择,操作简单.此外 ...
- iOS7.1企业版发布后用户通过sarafi浏览器安装无效的解决方案
关于iOS7.1企业版发布后,用户通过sarafi浏览器安装无效的解决方案: 通过测试,已经完美解决. 方案一: iOS7.1企业应用无法安装应用程序 因为证书无效的解决方案 http://blog. ...
- 【转】在企业内部分发 iOS 应用程序
(via:破船之家,原文:Provision iOS IPA App for In-House Enterprise Distribution) 在企业内部分发 iOS 应用程序非常复杂.经过努力 ...
- OSX 10.10+Xcode5.1 无法启动或者安装应用程序到iOS 6.1 simulator
错误症状: OSX 10.10+Xcode5.1 无法启动或者安装应用程序到iOS 6.1 simulator 错误原因: iOS Simulator 内核要使用OSX 系统内核,所以iOS Simu ...
- websphere8 从安装到部署 测试集群应用程序 安装j2ee程序(非常详细)
目录1. 准备安装文件2. 安装Installation Manager3. 为Installation Manager指定安装资源库4. 创建部署管理器概要文件5. 创建定制概要文件并联合到部署管理 ...
- 解决“只能通过Chrome网上应用商店安装该程序”的方法
摘要 : 最近有些用户反映某个Chrome插件在安装的时候,提示"只能通过Chrome网上应用商店安装该程序",为了解决这一问题,Chrome插件网带来了相关的解决方法. 某些用户 ...
- Oracle安装错误“程序异常终止
Oracle安装错误"程序异常终止.发生内部错误.请将以下文件提供给oracle技术支持部 "程序异常终止.发生内部错误.请将以下文件提供给oracle技术支持部门:" ...
随机推荐
- 为Docker容器设置静态IP
此文已由作者袁欢授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 创建docker容器 docker run -it --name=yh -h yh --net=none de ...
- 洛谷 - P5030 - 长脖子鹿放置 - 二分图最大独立集
https://www.luogu.org/problemnew/show/P5030 写的第一道黑色题,图建对了. 隐约觉得互相攻击要连边,规定从奇数行流向偶数行. 二分图最大独立集=二分图顶点总数 ...
- Perfect项目快速上手
1.在您从Swift.org(英文版)完成Swift 4.0 toolchain工具集安装之后,请打开一个命令行终端并输入命令 swift --version Apple Swift version ...
- 51nod1414【思维】
思路: 直接可以枚举1-n,如果枚举到是n的约数i,那么暴力枚举起点,其余点用i累加就一定是正多边形.复杂度是(n*n的公约数个数(最多80)): const int N=2e4+10; int a[ ...
- UGUI技术之LayoutGroup布局实现详解
继续学习unity4.6,unity的LayoutGroup分为三种, Horizontal Layout Group(水平布局)Vertical Layout Group(垂直布局)Grid Lay ...
- 关于 T[] 的反射问题
1. T[] 类型不适应以下代码 Dictionary<string, Test> d = new Dictionary<string, Test>(); // Get a T ...
- uoj#79. 一般图最大匹配(带花树)
传送门 带花树 不加证明的说一下过程好了:每次从一个未匹配点\(S\)出发bfs,设\(S\)为\(1\)类点,如果当前点\(v\)在本次bfs中未经过,分为以下两种情况 1.\(v\)是未匹配点,那 ...
- iOS 7:漫谈#define 宏定义(转)
iOS :漫谈#define 宏定义 #define宏定义在C系开发中可以说占有举足轻重的作用.底层框架自不必说,为了编译优化和方便,以及跨平台能力,宏被大量使用,可以说底层开发离开define将寸步 ...
- react native的Navigator组件示例
import React, {Component} from 'react';import {ScrollView, StyleSheet, Text, View, PixelRatio} from ...
- Windows下完全卸载node.js并安装node.js的多版本管理工具nvm-windows
前言 由于高版本的node.js导致gulp执行build命令失败,我需要在Windows下卸载掉已有的node.js并安装一个多版本管理工具nvm-windows,方便切换不同版本的node.js. ...