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技术支持部门:" ...
随机推荐
- Lua 不是 C++
http://blog.codingnow.com/2008/08/lua_is_not_c_plus_plus.html 嗯,首先,此贴不是牢骚帖. 话题从最近私人的一点工作开始.应 dingdan ...
- Dapper的正确使用姿势
本文demo适用于MySQL Dapper优势和缺点 优点 高性能.易排查.易运维.灵活可控 缺点 和EF相比,手写sql当修改表结构不易发现bug. 习惯了EF后再来使用Dapper,会很难适应那种 ...
- Codevs 1282 约瑟夫问题
1282 约瑟夫问题 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 题解 题目描述 Description 有编号从1到N的N个小朋友在玩一种 ...
- [Xcode 实际操作]八、网络与多线程-(10)使用异步Get方式查询GitHub数据
目录:[Swift]Xcode实际操作 本文将演示如何通过Get请求方式,异步获取GitHub资源的详细信息. 异步请求与同步请求相比,不会阻塞程序的主线程,而会建立一个新的线程. 在项目导航区,打开 ...
- Quantitative proteomic analysis of small and large extracellular vesicles (EVs) reveals enrichment of adhesion proteins in small EVs (文献分享一组-柯酩)
文献名:Quantitative proteomic analysis of small and large extracellular vesicles (EVs) reveals enrichme ...
- 浅谈volatile关键字
volatile是一种轻量级的同步机制.它可以保证内存可见性以及防止指令重排序,但是不保证原子性 volatile和JMM机制是不可分割的,在谈volatile的时候有必要先了解以下JMM JMM(J ...
- properties 文件注意事项
不要使用""双引号包裹内容 db.validationQuery="select 1"比如上面这种是错误的,下面的是正确的写法 db.validationQue ...
- 【bzoj1731】Layout 排队布局
1731: [Usaco2005 dec]Layout 排队布局 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 868 Solved: 495[Subm ...
- C. Divide by Three DP
http://codeforces.com/contest/792/problem/C 这题奇葩题我居然用dp过了. 如果要模拟的话,可以用一个栈保存,保存每一个%3 = 2的pos,%3 = 1的p ...
- 安卓Listview 不规则项即不同item的运行
在安卓中,listview 的item 是一个不断被轮询调换位置的过程,这样 即 图片参考地址 http://www.cnblogs.com/mybkn/archive/2012/05/23/2 ...