`
gkuiyj
  • 浏览: 90782 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

iOS7.1企业应用 无法安装应用程序 因为证书无效 的解决方案

    博客分类:
  • iOS
 
阅读更多

       

背景:ios7.1以后,公司企业app无法下载,提示证书无效。记录解决方法,备忘。

 

iOS7.1发布后,对于iOS企业版内部分发方式上,苹果有了一个较大的调整,原来通过http方式安装应用不再有效,会提示“无法安装应用程序,因为“xxx”的证书无效”。苹果为了提高安全性,要求使用https的方式安装应用,

例如原来连接:

itms-services:///?action=download-manifest&url=http://www.3meb.com:80/ebms2/pkg/down/type/plist/bundleId/com.mmm.sor

现在必须是:

itms-services:///?action=download-manifest&url=https://www.3meb.com:80/ebms2/pkg/down/type/plist/bundleId/com.mmm.sor

要使用https方式的话,服务器必须安装安全证书,目前主要的解决方案:

A、 购买第三方CA认证(需要申请、付费高、审核耗时长)

B、  使用自签名证书,并在手机端安装根证书(使用JDK自带的keytool和OpenSSL可实现,内部推广方便)

C、  将app的plist描述文件放到支持https的第三方云或网盘,ipa安装文件放公司内部网站,用户通过访问第三方网站下载plist文件,用户手机端会根据plist中指定的ipa路径自动安装程序。(第三方云或网盘的稳定性与安全性不佳)

 

2、 目前暂时采用B方案,操作方式如下:

服务器端:

1、  安装JDK1.6,配置环境变量(过程略)

2、  部署jboss(略)

3、  安装OpenSSL,配置环境变量,(因安装OpenSSL需要perl和VS环境来编译,操作繁琐,本人使用mac os x系统自带的OpenSSL生成CA、认证)。

4、  生成证书:

生成keystone,(注册时填写名字与姓氏要与服务器ip或域名相同)

C:\Users\A53WSZZ>keytool -genkey -v -alias testjboss -keyalg RSA -keystore testj

boss.keystore -validity 3650

输入keystore密码:

再次输入新密码:

您的名字与姓氏是什么?

  [Unknown]:  169.8.247.70

您的组织单位名称是什么?

  [Unknown]:  3m

您的组织名称是什么?

  [Unknown]:  it

您所在的城市或区域名称是什么?

  [Unknown]:  sh

您所在的州或省份名称是什么?

  [Unknown]:  shanghai

该单位的两字母国家代码是什么

  [Unknown]:  cn

CN=169.8.247.70, OU=3m, O=it, L=sh, ST=shanghai, C=cn 正确吗?

  [否]:  y

 

正在为以下对象生成 1,024 位 RSA 密钥对和自签名证书 (SHA1withRSA)(有效期为 3,650

 天):

         CN=169.8.247.70, OU=3m, O=it, L=sh, ST=shanghai, C=cn

输入<testjboss>的主密码

        (如果和 keystore 密码相同,按回车):

[正在存储 testjboss.keystore]

 

注:testjboss是别名,3650是从现在开始的有效天数

 

准备生成CA的key

openssl genrsa –out myCA.key 2048

生成CA

openssl req –x509 –new –key myCA.key –out myCA.cer –days 3650 –subj /CN=“169.8.247.51

准备从CA请求认证的请求文件

keytool –certreq –alias testjboss –keystore testjboss.keystore –file server.csr

从CA请求认证

openssl x509 –req –in server.csr –out server.cer –CAkey myCA.key -CA myCA.cer –days 3650 –CAcreateserial –CAserial serial

导入CA根证书到keystore

Keytool –import –trustcacerts –keystore testjboss.keystore –alias root –file myCA.cer

导入认证证书到keystore

Keytool –import –keystore testjboss.keystore –alias jboss –file server.cer

注:(Keytool在windows生成,openssl在mac系统生成)证书等文件生成时未指定路径,默认生成在当前系统账号文件夹下,如:C:\Users\A53WS\

 

证书生成完毕后,在服务器端安装根证书myCA.cer和server.cer(双击安装,选择证书存储:受信任的第三方颁发机构)

 

5、  修改jboss配置文件(tomcat类似)

将上面生成的testjboss.keystore文件拷贝到\jboss-5.1.0.GA\server\default\conf目录下,

修改\jboss-5.1.0.GA\server\default\deploy\jbossweb.sar\server.xml文件,打开jboss自带的SSL配置,设置keystoreFile和keystorepass(此密码为keystore生成时输入的密码)

<!-- SSL/TLS Connector configuration using the admin devl guide keystore -->

      <Connector protocol="HTTP/1.1" SSLEnabled="true"

           port="8443" address="169.8.247.70"

           scheme="https" secure="true" clientAuth="false"

           keystoreFile="${jboss.server.home.dir}/conf/testjboss.keystore"

           keystorePass="a53wszz" sslProtocol = "TLS" />

 

 

 

用户手机端:

通过邮件附件等形式将根证书myCA.cer分发到手机端,点击证书安装,系统会跳转到‘安装描述文件’页面,点击安装,安装成功后会显示为 可信 ,表示证书安装成功。此时可通过Safari浏览器访问网址并下载app。

 

(注意:不要在浏览器safari中选择接受自签名证书。在Safari浏览器中第一次打开网址时,系统会弹出提示:1、继续(or接受),2、查看证书信息,3、取消。 如果在Safari中选择‘接受’将导致Safari把该站点添加到SSL例外队列中,导致该证书无法安装位ios可信任的证书,且该例外无法删除。---来自网络,未测试)

 

 

 

 

 

补充:

打开C:\jboss-5.1.0.GA\server\default\deployers\jbossweb.deployer\web.xml文件,加上:

<security-constraint> <web-resource-collection> <web-resource-name>SSLHtmlAdaptor</web-resource-name> <description> An example security config that only allows users with the role JBossAdmin to access the HTML JMX console web application </description> <url-pattern>/</url-pattern> </web-resource-collection> <user-data-constraint> <description>Protection should be CONFIDENTIAL</description> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint>开启jboss的SSL功能。

 

注:加在此处是对jboss下所有的项目生效,若想只对某个项目生效,则只对指定项目的web.xml文件中加入上述配置信息即可;

 

分享到:
评论

相关推荐

    解决 iOS7.1企业应用"无法安装应用程序 因为证书无效"的问题

    免费自签证书,Tomcat下解决iOS7.1企业应用"无法安装应用程序 因为证书无效"的问题。文档和例子详细说明了tomcat(Apache文档中也有解决说明)下解决 iOS7.1企业应用"无法安装应用程序 因为证书无效"的问题,在服务器...

    tomcat下解决 iOS7.1企业应用"无法安装应用程序 因为证书无效"的问题

    文档和例子详细说明了tomcat下解决 iOS7.1企业应用"无法安装应用程序 因为证书无效"的问题,在ios7.1真机上测试通过。遗留问题是每个ip地址都要证书,那么客户端需要多次安装客户端证书,解决办法是生成一个根证书,...

    iOS 7.1 DeveloperDisk Image

    这个压缩包文件包含了iOS 7.1版本的操作系统镜像,使得开发者能够在模拟器或者实际设备上运行并测试他们的应用程序。在iOS开发中,这种Disk Image扮演着核心角色,因为它提供了完整的系统环境,让开发者能够了解应用...

    windows下搭建iOS7.1应用发布的Https-Tomcat服务器

    iOS7.1以后,http形式发布的iOS企业应用不能正常下载安装了,必须使用https的协议,被文档就是基于Window系统,搭建一个能够发布iOS7.1以上系统的https的Tomcat服务器 部署帮助文档:...

    ios7 ios7.1 ios7.1.1完美越狱工具

    ios7 ios7.1 ios7.1.1完美越狱工具

    ios7.1引导

    iOS7.1_PwnDFU_Boot_Tool

    ios7.1有锁升级gpp安装

    我们有软件成本和服务器的,而且你这个也挺复杂的,每半个小时是搞不定的

    juniper防火墙ios 7.1R6.0 解压包2

    juniper防火墙最新版的ios j-sa-7.1R6.0-b20169-package

    ios7.1越狱工具

    ios7.1越狱工具 由越狱大神发布我只是搬运工

    ios7.1正式版完美越狱

    ios7.1正式版完美越狱

    iOS企业解决方案浅谈

    ### iOS企业解决方案浅谈 #### 前言 在当今数字化转型的大背景下,企业纷纷寻求通过先进的技术手段提升自身的竞争力。iOS平台凭借其卓越的技术特点和用户体验,成为了众多企业开发移动应用的首选平台之一。本文将...

    ios7.1强制隐藏ID

    因此,这种方法并不适用于长期解决方案,只适用于临时操作。 在进行iOS 7.1或7.1.2的Apple ID隐藏操作时,需要按照以下步骤进行: 1. **备份数据**:在执行任何操作之前,确保对设备上的重要数据进行备份,以防...

    DeveloperDiskImage for ios 7.1

    DeveloperDiskImage for ios 7.1 iOS 真机调试解决“Could not find Developer Disk Image”问题 资源包: 将文件解压拖入目录 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Device...

    苹果旧版快手支持iOS7.1+

    苹果旧版快手支持iOS7.1+

    evasi0n7苹果IOS7.1Beta4越狱

    evasi0n7苹果IOS7.1Beta4越狱

    evasi0n 7 for mac ios7.1越狱工具~

    "evasi0n 7 for mac ios7.1越狱工具"是专门为Mac用户设计的一款iOS设备越狱工具,主要针对iOS 7.1及以下版本。在深入探讨这个工具之前,我们先来理解一下什么是越狱。 越狱是指通过特定的技术手段,绕过苹果对iOS...

    ios7.1固件

    本周云计算频道内容精彩纷呈,有150年前的人类如何利用大数据可视化技术赶走霍乱、有支撑4.5亿活跃用户的WhatsApp架构概览、有IBM出手收购NoSQL数据库公司Cloudant、还有英特尔发布至强E7 v2处理器。

    iOS企业级应用的tomcat服务器和客户端配置

    本文将详细讲解如何使用Tomcat服务器配置HTTPS自签名证书,以解决iOS 7.1及以上系统的应用下载问题。 首先,我们需要准备环境。这包括下载并安装Tomcat服务器,以及与之配套的JDK。Tomcat可以从官方网站下载,根据...

    iOS应用无线发布SOP

    在这个步骤中,需要安装 iOS 企业应用发布平台的安装页面,以便提供给用户安装应用的入口。 应用打包 在这个步骤中,需要将应用打包成 ipa 文件,以便在 iOS 设备上安装和使用。 ##### 4.1 Archive 在这个步骤中...

Global site tag (gtag.js) - Google Analytics