iOS7.1企业应用"无法安装应用程序 因为证书无效"的解决方案
在不发布情况下,IOS7.1安装企业版IPA,需要ssl支持,必须生成ca.crt (供终端授信证书使用) , server.jks配置到本地开发服务器使用
http://127.0.0.1/apptest/dev.html 访问跳转即可打开安装。
本文软件环境:
ubuntu、tomcat
一、首先我们生成服务端和客户端所需要的证书。
1.生成服务器的私钥:
openssl genrsa -out server.key 1024
2.
生成签署申请(注意除Common Name以外可以为空,Common Name必须为服务器的ip或域名(无端口号和http头)):
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
6. 把服务端代码转换浏览器可以识别的PCS12 格式,密码使用上面输入的密码。
openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12
7.
使用jetty 中的PKCS12Import 工具类完成转换,密码同上.
(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
至此客户端证书ca.crt 以及tomcat服务器证书server.jks已经生成完毕。
二、向服务器安装server.jks证书
打开tomcat安装目录下的conf/server.xml
加入以下内容
<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://localhose:8443
若打开tomcat页面,恭喜,服务器的配置已经完成。
三、向手机安装ca.crt证书
用邮箱给你的ios设备发送ca.crt证书,然后用手机打开接收到的证书,点击安装即可。
四、安装
将下载链接地址改成:
- itms-services://?action=download-manifest&url=https://example.com/manifest.plist
现在,再次访问我们之前的itms-services链接,就可以正常安装了。