tomcat7.0 + openssl 构建IOS7.1无线安装ipa环境

最主要的工作其实就是证书的配置,实现的最终目标是:PC上开启tomcat服务器,IOS设备终端(系统是IOS7.1及以后)访问页面,点击页面上的安装连接,设备就能自动安装app。

证书的配置过程:

       参考页面:http://wenku.baidu.com/view/7f3c491f650e52ea5518987b.html

       这里做个转载,并记录过程中遇到的问题,及解决方法

       1.  工具:openssl + tomcat7.0  openssl地址:http://files.cnblogs.com/leeshd/OpenSSL.rar,下载后进入安装目录下的bin目录

       2. 生成根证书的私钥,生成文件cakey.pem

                openssl genrsa -out cakey.pem 1024

       3. 根据私钥生成证书申请,生成文件careq.csr

                openssl req -new -out careq.csr -key cakey.pem

                如果在window系统下,需要添加-config openssl.cnf,linux下则不需要。

       4. 根据根证书申请生成自签名根证书,生成文件cacert.pem

                openssl x509 -req -n careq.csr -out cacert.pem -signkey cakey.pem -days 3650

   生成tomcat证书库文件和证书申请

       1. 生成证书库文件 tomcatkey.jks

                keytool -genkey -alias tomcat -keyalg RSA -keysize 1024 -validity "1825" -keypass 123456 -keystore tomcatkey.jks -storepass 123456

                            着色部分可以根据具体情况改变

                            参数:-alias 证书库文件中私钥的别名
                                        -keypass 证书库文件私钥的密码
                                        -keystore 证书库文件的存储路径
                                        -storepass 证书库文件的密码

                            名字和姓氏必须要输入服务器的域名或者ip地址,建议ip地址,否则部署后会提示 证书不匹配 的错误

       2.  根据证书库文件生成证书申请,生成文件certreq.cer

              keytool -certreq -alias tomcat_server -sigalg "MD5withRSA" -file certreq.cer -keypass 123456 -keystore tomcatkey.jks -storepass 123456

   制作服务器证书并导入证书库

         1.  用根证书签名证书申请生成根证书,生成文件tomcatcert.pem

                   openssl ca -keyfile cakey.pem -cert cacert.pem -in certreq.cer -out tomcatcert.pem -config openssl.cnf -policy policy_anything

                   如果在window系统下,需要添加-config openssl.cnf,linux下则不需要。

                   (证书可能失败,原因是openssl证书数据库中已经存储了这个证书,错误输出:failed to update database, IXI_DB error number 2,

                        解决办法是在目录openssl/democa/index.txt,把内容清空,查看大小为0KB,这个做法会把已有的证书删除,有耐心可以找到那条记录并删除他)

          2.  转pem格式为cer格式,生成文件cacert.cer,tomcatcert.cer

                    openssl x509 -in cacert.pem -out cacert.cer
                    openssl x509 -in tomcatcert.pem -out tomcatcert.cer

          3. 将转换成功的cer文件导入证书库文件中

                     导入根证书:keytool -keystore tomcatkey.jks -import -alias RootCA -file cacert.cer

                      导入服务器证书:keytool -keystore tomcatkey.jks -import -alias tomcat_server -file tomcatcert.cer

     Tomcat配置

            1. server.xml

                   找到<Connector port="8443" .../>,默认被注释掉的,修改如下:

                           <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
                                                  maxThreads="150" scheme="https" secure="true"
                                                  clientAuth="false" sslProtocol="TLS"
                                                  keystoreFile="E:/tomcatkey.jks" keystorePass="123456"
                                                  truststoreFile="E:/tomcatkey.jks" truststorePass="123456">

                          如果是tomcat6.0,则 protocol为HTTP/1.1

                          其中,clientAuth 表示客户认证,由于双向认证一般在 B2B 中,这里只需要服务器认证即可。
                                      keystoreFile 表示证书地址(相对地址或绝对地址皆可),keystorePass 与之前设置的密码一致。

            2. web.xml

                 在<web-app>标签内末尾:

                         <security-constraint>  
                              <!-- Authorization setting for SSL -->  
                              <web-resource-collection >   
                                   <web-resource-name >SSL</web-resource-name>  
                                  <url-pattern>/*</url-pattern>  
                              </web-resource-collection>  
                              <user-data-constraint>  
                                  <transport-guarantee>CONFIDENTIAL</transport-guarantee>  
                              </user-data-constraint>  
                          </security-constraint>

            3. 启动tomcat,在浏览器中输入https://ip:8443,此时浏览器会提示不安全的连接,直接进入地址栏会出现证书错误的提示,点击错误区域按照提示安装证书。

                或者 Inernet选项-内容-证书-受信任的根证书颁发机构-导入,选中之前的cacert.cer和tomcatcert.cer,就oK了

      移动设备访问安装页面   

                在ios设备的safiri中输入页面地址,点击安装连接时会提示 无法连接到xxx.xxx.xxx.xxx,那是因为safiri没有安装证书信任此连接,所以要先安装证书,才能正常。

                在浏览器中输入cacert.cer的地址,设备会自动跳转到安装步骤,按照步骤完成安装就可以了,注意最后证书上要有绿色的信任标记才表明安装成功,如果是红色叉号表面安装失败。

                安装成功后就可以使用无线安装app了。

                 PS. 浏览器下安装证书
                      在macos系统下,使用tomcatcert.cer文件,并将信任设置设置为:总是信任,操作步骤:双击cer文件,在钥匙串访问中,双击此证书会弹出一个详情框,展开信任标签,有一项是"使用此证书时"的combobox选项,展开并选中"总是信任",然后在重启浏览器就OK。
                      在win7下,使用cacert.cer文件,使用证书导入或者直接点击安装,最后需要确认是否已经安装上去。操作步骤:internet选项 -> 内容 -> 证书 -> 查看证书是否存在即可。最后重启浏览器就OK。

      最后提供一个windows下的批处理文件,一键生成证书:

           keytool参数 参考 http://deanandbai-gmail-com.iteye.com/blog/1538749

@echo off
echo -----------------------------------
echo 1. 生成根证书...
openssl genrsa -out cakey.pem 1024
openssl req -new -out careq.csr -key cakey.pem -config openssl.cnf -subj /C=CN/ST=JiangSu/L=NanJing/O=Zyx/CN=your ip
openssl x509 -req -in careq.csr -out cacert.pem -signkey cakey.pem -days 3650

echo -----------------------------------
echo 2. 证书申请...
keytool -genkey -alias tomcat_server -keyalg RSA -keysize 1024 -validity "1825" -keypass 123456 -keystore tomcatkey.jks -storepass 123456 -dname C=CN,ST=JiangSu,L=NanJing,O=Zyx,CN=your ip
keytool -certreq -alias tomcat_server -sigalg "MD5withRSA" -file certreq.cer -keypass 123456 -keystore tomcatkey.jks -storepass 123456

echo -----------------------------------
echo 3. 证书导入...
openssl ca -keyfile cakey.pem -cert cacert.pem -in certreq.cer -out tomcatcert.pem -config openssl.cnf -policy policy_anything
openssl x509 -in cacert.pem -out cacert.cer
keytool -keystore tomcatkey.jks -import -alias RootCA -file cacert.cer -storepass 123456
openssl x509 -in tomcatcert.pem -out tomcatcert.cer
keytool -keystore tomcatkey.jks -import -alias tomcat_server -file tomcatcert.cer -storepass 123456

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值