利用用户自己的server、tomcat下的解决iOS7.1企业应用无法安装应用程序 由于证书无效的问题
1、环境
(1)操作系统:Windows server 2003、Windows server2008
(2)JDK:jdk 1.6
(3)apache-tomcat-6.0.35(注意版本号号,版本号6.0.18測试未通过)
(4)网络:互联网、专网測试均通过。
2、使用到的软件、jar包
(1)Win32OpenSSL_Light-1_0_1g.exe(将bin文件夹设置到path环境变量中,需在命令提示符窗体使用openssl等命令)
(2)jdeclipse_update_site_uncomplie_vcredist_x86.exe(OpenSSL提醒环境不支持时,安装)
(3)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
5. 在当前文件夹创建demoCA,里面创建文件index.txt和serial,serial内容为01。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配置
(1)配置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。 |
加入之后效果:
(2)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。
注意:是https不是 http。port为https的port不是tomcatprojectport,上面设置的是8443。
证书下载:href为tomcatproject訪问地址。
5、终端安装证书和软件
终端在浏览器地址栏里输入tomcatproject訪问地址(使用自带Safari浏览器):
IOS7.1版本号的,先安装证书、再点击client安装就可以。
6、注意点
(1)openssl环境变量和jetty-5.1.10.jar位置
(2)tomcat版本
(3)生成的证书所在位置、需在tomcat的server.xml中配置
(4)证书中的ip地址或域名,若ip地址更改,则证书又一次生成。
(5)证书生成时。password要记住。
(6)index.html中的.plist文件的地址,採用https协议及port。
(7)index.html中的证书位置和.plist文件里的安装包位置均採用tomcatproject路径。