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

iOS7.1企业应用"无法安装应用程序 因为证书无效"的解决方案
    在使用企业证书发布App的情况下,IOS7.1安装App,需要SSL支持,需要ca.crt(iOS设备端使用) , server.jks服务端使用即用来配置tomcat的。

软件环境:
   linux,tomcat,openssl,keytool,jdk
一、首先我们生成服务端和客户端所需要的证书。
   1.生成服务器的私钥:
     openssl genrsa -out server.key 1024

   2.生成签署申请(注意除Common Name以外可以为空,Common Name必须为服务器的ip或域名):
     openssl req -new -key server.key -out server.csr

   3.生成CA私钥
     openssl genrsa  -out ca.key 1024

   4.利用CA的私钥产生CA的自签署证书(注意除Common Name和organizationName以外可以为空,Common Name必须为服务器的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为网站服务器签署证书:
     openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key
     如果出现 can not open “etc/pki/CA/index.txt”file 的错误,请进入到etc/pki/CA/下创建index.txt和serial文件,内容于上述一样。

   6.把服务端代码转换浏览器可以识别的PCS12 格式,密码使用上面输入的密码。
     openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12

   7.使用jetty中的PKCS12Import 工具类完成转换,密码同上.(jetty-5.1.10.jar 下载地址: http://download.csdn.net/detail/dongtaochen2039/7275293 )
     java -cp jetty-5.1.10.jar org.mortbay.util.PKCS12Import server.p12  server.jks

   8.使用下面命令查看jks文件中包含的证书信息
     keytool -v -list -keystore server.jks

   至此客户端证书ca.crt 以及tomcat服务器证书server.jks已经生成完毕。

二、向服务器安装server.jks证书
   打开tomcat安装目录下的conf/server.xml,找到Connector port="8443" 配置keystoreFile(server.jks的路径)和keystorePass(密码)
      <Connector port="8443" protocol="HTTP/1.1"  SSLEnabled="true"
                 maxThreads="150" scheme="https" secure="true"
                 clientAuth="false" 
                 keystoreFile="/home/darren/web/programs/apache-tomcat-7.0.52/conf/httpscer/server.jks"
                 keystorePass="yaic1996" 
                 sslProtocol="TLS" />

   重启tomcat,访问网址
   https://localhost:8443
   若打开tomcat页面,恭喜,服务器的配置已经完成。

三、向手机安装ca.crt证书
   a.用邮箱给你的ios设备发送ca.crt证书,然后用手机打开接收到的证书,点击安装即可。
   b.在你的下载页面提供一个证书下载的链接: <p class="app_details_loginfo"><a href="https://address:port/certificate/ca.crt">如果应用无法安装,请安装证书文件</a> </p>

四、安装
   将下载链接地址改成:
     itms-services://?action=download-manifest&url=https://example.com/manifest.plist 
    注意:plist里面的http也要改成https。


现在,再次访问我们之前的itms-services链接,就可以正常安装了。

你可能感兴趣的:(iOS7.1企业应用"无法安装应用程序 因为证书无效"的解决方案 linux tomcat ssl)