在IOS7.1系统以后,如果要使用企业证书(299美元)通过itms-services在线安装ipa的话必须走https协议,而https的认证是要花费钱的,今天我们就来构建一个本地的https服务器来在线安装ipa。这里我们需要两本证书,一本放在服务器上,一本由iphone客户端安装。服务器我们使用apache-tomcat-7.0.59。
1.生成证书
1.生成服务器的私钥
|
openssl genrsa -out server.key 1024
|
2.生成签署申请(注意除Common Name以外可以为空,Common Name必须为服务器的ip或域名 如格式:172.16.1.73)
|
openssl req -new -key server.key -out server.csr
|
3.生成CA私钥
|
openssl genrsa -out ca.key 1024
|
4.利用CA的私钥产生CA的自签署证书
|
openssl req -new -x509 -days 365 -key ca.key -out ca.crt
|
5.在当前目录创建demoCA,里面创建文件index.txt和serial,serial内容为01,index.txt为空,以及文件夹newcerts
|
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key
|
6.将.key 和.cer 文件导出为.p12 证书
|
openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12
|
|
keytool -importkeystore -v -srckeystore server.p12 -srcstoretype pkcs12 -srcstorepass 123456 -destkeystore server.keystore -deststoretype jks -deststorepass 123456
|
2.修改tomact配置,加载证书
在tomcat的webapps目录下面创建一个ipa文件夹并把相应的文件拷贝进去,文件夹结构如下在conf文件下面,打开server.xml增加以下代码
- <Connectorport="8443"protocol="org.apache.coyote.http11.Http11Protocol"SSLEnabled="true"
- maxThreads="150"scheme="https"secure="true"
- keystoreFile="xxxxxx/webapps/ipa/server.keystore" keystorePass="123456"
- clientAuth="false"sslProtocol="TLS" />
index.html文件的代码如下,用户需要先点击download ca来安装证书。
- <a href="itms-services:///?action=download-manifest&url=https://172.16.1.73:8443/ipa/test.plist">download ipa</a>
- <a href="https://172.16.1.73:8443/ipa/ca.crt">download ca</a>
- <span style="color:#555555;"><?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
- <plist version="1.0">
- <dict>
- <key>items</key>
- <array>
- <dict>
- <key>assets</key>
- <array>
- <dict>
- <key>kind</key>
- <string>software-package</string>
- <key>url</key>
- <string>https://172.16.1.73:8443/ipa/test.ipa</string> </span><span style="font-family: 宋体;"><span style="color:#ff6666;"><!--需修改 --></span></span><span style="color:#555555;">
- </dict>
- </array>
- <key>metadata</key>
- <dict>
- <key>bundle-identifier</key>
- <string>com.gamed9.mgg</string> </span><span style="color:#ff0000;"> <span style="font-family: 宋体;"><!--需修改 --></span></span><span style="color:#555555;">
- <key>bundle-version</key>
- <string>0.0.0</string>
- <key>kind</key>
- <string>software</string>
- <key>title</key>
- <string>测试</string>
- </dict>
- </dict>
- </array>
- </dict>
- </plist>
- </span>