tomcat7.0 + openssl 构建IOS7.1无线安装ipa环境
2015-03-17 10:34
369 查看
之前找的是公司安全组做的证书,也是自签名证书吧。然后最近测试服务器迁了网段,导致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
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
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
找到<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了
在浏览器中输入cacert.cer的地址(一开始我用了tomcatcert.cer导致没法用),设备会自动跳转到安装步骤,按照步骤完成安装就可以了,注意最后证书上要有绿色的信任标记才表明安装成功,如果是红色叉号表面安装失败。
安装成功后就可以使用无线安装app了。
PS. 浏览器下安装证书
在macos系统下,使用tomcatcert.cer文件,并将信任设置设置为:总是信任,操作步骤:双击cer文件,在钥匙串访问中,双击此证书会弹出一个详情框,展开信任标签,有一项是"使用此证书时"的combobox选项,展开并选中"总是信任",然后在重启浏览器就OK。
在win7下,使用cacert.cer文件,使用证书导入或者直接点击安装,最后需要确认是否已经安装上去。操作步骤:internet选项 -> 内容 -> 证书 -> 查看证书是否存在即可。最后重启浏览器就OK。
正文开始:
证书的配置过程:
参考页面: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.jkskeytool -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.pemopenssl 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
相关文章推荐
- tomcat7.0 + openssl 构建IOS7.1无线安装ipa环境
- apache http server2.0.65 + openSSL 配置IOS7.1下无线安装ipa的环境
- 如何用Tomcat和Openssl构建HTTPS双向认证环境(HTTPS客户端认证)
- 如何用Tomcat和Openssl构建HTTPS双向认证环境(HTTPS客户端认证)
- 在 Linux RedHatEL6 环境下安装配置 JDK1.7 + Tomcat7.0 + MySQL5.6
- 如何用Tomcat和Openssl构建HTTPS双向认证环境(HTTPS客户端认证)
- linux(rhel7.0)环境安装tomcat
- 如何用Tomcat和Openssl构建HTTPS双向认证环境(HTTPS客户端认证)
- 基于WINDOWS OS ANT + NSIS + BAT + SVN 环境,ANT 一键安装制作 JAVA WEB + TOMCAT7.0 EXE 安装包
- Eclipse, tomcat7.0, maven,git 构建RESTful风格的web 工程(搭建环境)
- 如何用Tomcat和Openssl构建HTTPS双向认证环境(HTTPS客户端认证)
- 如何用Tomcat和Openssl构建HTTPS双向认证环境
- FreeBSD 7.0 安装配置JSP环境apache+apache-tomcat+mod_jk
- Tomcat 7.0安装及环境变量配置
- linux CentOS 6.5 下安装jdk1.7, tomcat7.0环境配置
- 在windows7环境下安装tomcat7.0的详细步骤
- 在 Linux RedHatEL6 环境下安装配置 JDK1.7 + Tomcat7.0 + MySQL5.6
- apache+tomcat+proxy+openssl+postgresql+modsecurity整套生产环境安装过程
- FreeBSD 7.0 安装配置JSP环境apache+apache-tomcat+mod_jk 整理,添加
- 如何用Tomcat和Openssl构建HTTPS双向认证环境(HTTPS客户端认证)