利用用户自己的server、tomcat下的解决iOS7.1企业应用无法安装应用程序 由于证书无效的问题
1、环境
)操作系统:Windows server 2003、Windows
server2008
)JDK:jdk 1.6
)apache-tomcat-6.0.35(注意版本号号,版本号6.0.18測试未通过)
)网络:互联网、专网測试均通过。
2、使用到的软件、jar包
)Win32OpenSSL_Light-1_0_1g.exe(将bin文件夹设置到path环境变量中,需在命令提示符窗体使用openssl等命令)
)jdeclipse_update_site_uncomplie_vcredist_x86.exe(OpenSSL提醒环境不支持时,安装)
)jetty-5.1.10.jar(放在证书所在的目录中)
3、server端、client证书生成步骤
下面命令在命令提示符窗体中运行。(路径:证书所在目录路径)
1.生成server的私钥:
openssl genrsa -out server.key 1024
2.生成签署申请(注意除Common Name以外能够为空,Common Name必须为server的ip或域名):
openssl req -new -out server.csr -key server.key
3.生成CA私钥
openssl genrsa -out ca.key 1024
4.利用CA的私钥产生CA的自签署证书(注意除Common
Name和organizationName以外能够为空。Common Name必须为server的ip或域名(内外网区分),
organizationName必须和上一次一致):
openssl req -new -x509 -days 365 -key ca.key -out ca.crt
。index.txt为空。以及文件夹newcerts。
CA为站点server签署证书:
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key
6.把服务端代码转换浏览器能够识别的PCS12格式,password使用上面输入的password。
openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12
7.使用jetty中的PKCS12Import工具类完毕转换,password同上.(jetty-5.1.10.jar在当前目录中)
java -cp jetty-5.1.10.jar org.mortbay.util.PKCS12Import server.p12 server.jks
8.使用以下命令查看jks文件里包括的证书信息
keytool -v -list -keystore server.jks
至此client证书ca.crt以及tomcat服务器证书server.jks已经生成完成。
4、tomcatproject配置
)配置server端证书
打开tomcat安装文件夹下的conf/server.xml
增加下面内容
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" keystoreFile="D:/apache-tomcat-6.0.35/webapps/ipad/ca/server.p12" keystorePass="jj" keystoreType="PKCS12" truststoreFile="D:/apache-tomcat-6.0.35/webapps/ipad/ca/server.jks" truststorePass="jj" truststoreType="JKS"/> |
注意:keystoreFile、keystorePass为文件生成的位置和生成证书时输入的password。 |
加入之后效果:
)project配置(目录中有样例)
yjoa.jpa:打包生成的软件安装文件。
yjoa.plist:配置文件
url改动为该tomcatproject訪问地址。
bundle-identifier为版本号的签名信息。与打版本号时的签名保持一致。
index.html文件:訪问页面。
client下载:href的前半部分“itms-services://?action=download-manifest&url=”为固定写法。url之后的更改,https://
+ ip + port +project名 + jj.plist。
。
证书下载:href为tomcatproject訪问地址。
5、终端安装证书和软件
终端在浏览器地址栏里输入tomcatproject訪问地址(使用自带Safari浏览器):
IOS7.1版本号的,先安装证书、再点击client安装就可以。
6、注意点
(1)openssl环境变量和jetty-5.1.10.jar位置
)tomcat版本
)生成的证书所在位置、需在tomcat的server.xml中配置
)证书中的ip地址或域名,若ip地址更改,则证书又一次生成。
)证书生成时。password要记住。
)index.html中的.plist文件的地址,採用https协议及port。
)index.html中的证书位置和.plist文件里的安装包位置均採用tomcatproject路径。
利用用户自己的server、tomcat下的解决iOS7.1企业应用无法安装应用程序 由于证书无效的问题的更多相关文章
- Tomcat下conf下server.xml的文件配置信息
Tomcat下conf下server.xml的文件配置信息,基本上不用做任何修改就可以使用,修改的地方就是host区域的一些配置,此文件设置端口为80. 注意:Tomcat配置文件中(即server. ...
- [saiku] 在 Tomcat 下部署 saiku
上一篇介绍了如何配置免登录[免登录进入管理台] 本文主要是一步一步解释如何在Tomcat下部署saiku,为了让你更好更快的使用. 开始之前,假设你已经比较熟悉数据集市数据库,以及如何建立Mondri ...
- 利用脚本修改SQL SERVER排序规则
利用脚本修改SQL SERVER排序规则 编写人:CC阿爸 2014-3-1 l 今年的一项重要工作是对公司所用系统进行繁简的转换,程序转成简体基本很容易解决,但数据库转换成简体,就没那么容易了.经 ...
- Tomcat 下4个配置文件详解
Tomcat 的配置文件由4个 xml 文件构成,context.xml.web.xml.server.xml.tomcat-users.xml 这4个文件.每个文件都有自己的功能与配置方法,下列将逐 ...
- tomcat下的work目录和temp目录
1. tomcat下的work目录 1 用tomcat作web服务器的时候,部署的程序在webApps下,这些程序都是编译后的程序(发布到tomcat的项目里含的类,会被编译成.class后才发 ...
- Tomcat启动失败 提示Server Tomcat v7.0 Server at localhost failed to start.六种解决方法
Tomcat启动失败,提示Server Tomcat v7.0 Server at localhost failed to start 在一次查看自己以前写过的项目中,运行tomcat失败,出现如图提 ...
- JFinal 项目 在tomcat下部署
原文:http://my.oschina.net/jfinal/blog/353062 首先明确一下 JFinal 项目是标准的 java web 项目,其部署方式与普通 java web 项目没有任 ...
- Server Tomcat v6.0 Server at localhost was unable to start within 45 seconds...
仰天长啸 Server Tomcat v6.0 Server at localhost was unable to start within 45 seconds... 当启动tomcat时候出现 ...
- 在tomcat下部署工程
xx系统第一期工程完成,今天老大要我去部署系统,从来就没有在tomcat下部署过,一直都是在myeclipse下部署.启动.运行即可,所以这次遇到了几个问题,记录下来. tomcat启动 在安装tom ...
随机推荐
- img src某个php文件输出图片(回复更改图片readfile读取图片等)
在论坛我们经常看到一回复图片就更改等,这功能是怎么实现的呢,其实更验证码道理相同. 新建文件 randimage.php 加入以下代码: <?php $dir='../../images/'; ...
- 扩展 Windows Azure 运营能力 – 巴西
今天早些时候,在巴西圣保罗的一个活动上,我宣布了我们将在巴西设立一个 Windows Azure 区域数据中心的计划.我们希望该区域中心可以在 2014 年年初上线,并且我们很高兴地宣布将在未来 4 ...
- zepto.js介绍(持续更新)
前言: zepto是一个简化版的jQuery,主要针对移动端开发. 简化了jQuery里很多的浏览器兼容性代码,jQuery的很多方法都被拿掉了(eg:slideUp). WP设备兼容性很差. 官方链 ...
- C#面向对象2 静态类、静态成员的理解
理解:静态成员属于类所有,为各个类的实例所公用,与实例无关,需要全局共享的属性或者方法定义成静态的 C#静态成员: 1.静态成员属于类所有,故用类名调用,非静态成员属于类的实例所有,用实例名调用 ...
- 编译kernel:配置
韦东山Linux视频第1期_裸板_UBoot_文件系统_驱动初步\第10课第2节 内核启动流程分析之配置.WMV 下面以DM9000的配置为例: 在一个编译好的内核代码里,寻找CONFIG_DM900 ...
- C++ Primer学习笔记2--c++标准库中的 vector、string 和 bitset 类型
一.string #include <string> using std::string 初始化函数: string s1; 默认构造函数 s1 为空串 ...
- [置顶] RFS的web自动化验收测试——常见问题指引
引言:什么是RFS——RobotFramework+Selenium2library,本系列主要介绍web自动化验收测试方面. ( @齐涛-道长 新浪微博) 下面的内容还没整理好,先发个问题解决机制吧 ...
- Java里的日期和时间学习
Date date = new Date();//yyyy-mm-dd hh:mm:ss[.fffffffff] SimpleDateFormat sdf = new SimpleDateFormat ...
- MFC 在对话框显示图片的多种方法(四种方法)
我们先从简单的开始吧.先分一个类: (一) 非动态显示图片(即图片先通过资源管理器载入,有一个固定ID) (二) 动态载入图片(即只需要在程序中指定图片的路径即可载入) 为方便说明,我们已经建好一个基 ...
- javascript 中对this关键字的一些理解
var self = this 可能会觉得奇怪为什么我会定义一个_self的变量, 因为在js里,this不用对于其他的对象语言,他的解析过程与运行过程中this会改变的.这里简单说说js里this的 ...