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

10 篇文章 0 订阅
4 篇文章 0 订阅

之前找的是公司安全组做的证书,也是自签名证书吧。然后最近测试服务器迁了网段,导致ios客户端的cer证书用不了了,就不能正常下载和更新ipa。所以需要重新做个证书,这次我就自己搞个证书,看了下面的资料,验证可用。虽然是tomcat的,但是jboss也类似。关键还是要拿到客户端用的cer证书和服务端用的tomcat证书。注意我做的时候,ca证书和tomcat证书的名字都是ip,如果ca证书的name改了,我不确定能否可用。我做证书的过程参考的是百度文库的,客户端证书选择则是看了下文。

正文开始:

证书的配置过程:

       参考页面: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的地址(一开始我用了tomcatcert.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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在现有省、市港口信息化系统进行有效整合基础上,借鉴新 一代的感知-传输-应用技术体系,实现对码头、船舶、货物、重 大危险源、危险货物装卸过程、航管航运等管理要素的全面感知、 有效传输和按需定制服务,为行政管理人员和相关单位及人员提 供高效的管理辅助,并为公众提供便捷、实时的水运信息服务。 建立信息整合、交换和共享机制,建立健全信息化管理支撑 体系,以及相关标准规范和安全保障体系;按照“绿色循环低碳” 交通的要求,搭建高效、弹性、高可扩展性的基于虚拟技术的信 息基础设施,支撑信息平台低成本运行,实现电子政务建设和服务模式的转变。 实现以感知港口、感知船舶、感知货物为手段,以港航智能 分析、科学决策、高效服务为目的和核心理念,构建“智慧港口”的发展体系。 结合“智慧港口”相关业务工作特点及信息化现状的实际情况,本项目具体建设目标为: 一张图(即GIS 地理信息服务平台) 在建设岸线、港口、港区、码头、泊位等港口主要基础资源图层上,建设GIS 地理信息服务平台,在此基础上依次接入和叠加规划建设、经营、安全、航管等相关业务应用专题数据,并叠 加动态数据,如 AIS/GPS/移动平台数据,逐步建成航运管理处 "一张图"。系统支持扩展框架,方便未来更多应用资源的逐步整合。 现场执法监管系统 基于港口(航管)执法基地建设规划,依托统一的执法区域 管理和数字化监控平台,通过加强对辖区内的监控,结合移动平 台,形成完整的多维路径和信息追踪,真正做到问题能发现、事态能控制、突发问题能解决。 运行监测和辅助决策系统 对区域港口与航运业务日常所需填报及监测的数据经过科 学归纳及分析,采用统一平台,消除重复的填报数据,进行企业 输入和自动录入,并进行系统智能判断,避免填入错误的数据, 输入的数据经过智能组合,自动生成各业务部门所需的数据报 表,包括字段、格式,都可以根据需要进行定制,同时满足扩展 性需要,当有新的业务监测数据表需要产生时,系统将分析新的 需求,将所需字段融合进入日常监测和决策辅助平台的统一平台中,并生成新的所需业务数据监测及决策表。 综合指挥调度系统 建设以港航应急指挥中心为枢纽,以各级管理部门和经营港 口企业为节点,快速调度、信息共享的通信网络,满足应急处置中所需要的信息采集、指挥调度和过程监控等通信保障任务。 设计思路 根据项目的建设目标和“智慧港口”信息化平台的总体框架、 设计思路、建设内容及保障措施,围绕业务协同、信息共享,充 分考虑各航运(港政)管理处内部管理的需求,平台采用“全面 整合、重点补充、突出共享、逐步完善”策略,加强重点区域或 运输通道交通基础设施、运载装备、运行环境的监测监控,完善 运行协调、应急处置通信手段,促进跨区域、跨部门信息共享和业务协同。 以“统筹协调、综合监管”为目标,以提供综合、动态、实 时、准确、实用的安全畅通和应急数据共享为核心,围绕“保畅通、抓安全、促应急"等实际需求来建设智慧港口信息化平台。 系统充分整合和利用航运管理处现有相关信息资源,以地理 信息技术、网络视频技术、互联网技术、移动通信技术、云计算 技术为支撑,结合航运管理处专网与行业数据交换平台,构建航 运管理处与各部门之间智慧、畅通、安全、高效、绿色低碳的智 慧港口信息化平台。 系统充分考虑航运管理处安全法规及安全职责今后的变化 与发展趋势,应用目前主流的、成熟的应用技术,内联外引,优势互补,使系统建设具备良好的开放性、扩展性、可维护性。
VS是微软公司开发的一款集成开发环境,而libcurl、zlib和openssl都是开源软件库。 libcurl是一个用于支持网页传输协议的客户端软件库。它支持多种传输协议,包括HTTP、FTP、SMTP等,可以方便地实现网络数据的传输和通信。libcurl提供了简单易用的API接口,具有高度的可移植性和灵活性,广泛应用于各种网络应用中。 zlib是一个用于数据压缩和解压缩的库。它可以将数据进行压缩,使其占用更少的存储空间,同时可以提高数据的传输效率。zlib可以与其他软件库配合使用,例如libcurl,以实现网络数据的传输和压缩。 openssl是一个开源的加密解密库。它提供了各种安全协议和算法的实现,包括SSL/TLS协议、RSA、AES等,用于保护网络通信的安全性。openssl被广泛应用于网络安全领域,用于实现加密通信、数字证书生成和管理等功能。 在使用方面,VS主要用于开发和编译程序,可以方便地创建和管理项目,提供了丰富的开发工具和调试功能。而libcurl、zlib和openssl是用于程序开发过程中的库文件,可以被程序调用以实现特定功能。在网络应用开发中,常常需要使用libcurl来进行网络传输,同时可以结合zlib进行数据的压缩和解压缩,而openssl可以提供数据的安全加密和解密功能。 总之,VS是一个开发环境,而libcurl、zlib和openssl是开发中常用的软件库,它们在不同领域发挥着重要的作用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值