美文网首页
IOS发布https证书制作

IOS发布https证书制作

作者: 晴天灬 | 来源:发表于2016-11-29 14:42 被阅读88次

    本文引荐了网上其他小盆友的文章,加上一点自己多次失败的心得,若有得罪请小喷。

    必要的软件(版本随意):

    1.Tomcat

    2.Jdk

    3.openssl

    第一步:配置JDK和Openssl到环境变量Path中,具体方法可自行百度

    第二步:生成证书

    1、创建一个目录,进入cmd命令行下,通过cd命令进入该目录

    2、在指定的目录下运行命令:openssl genrsa -out server.key 1024生成服务器密钥文件。

    如果目录下生产server.key的文件,并且文件大小不为0,则说明成功。

    如果没成功,查看输出的内容中是否有提示“\usr\local\ssl\openssl.cnf”找不到的问题,如果遇到这个问题,说明你并没有按照第四步的要求将openssl设置到path中,解决的办法有2个,第一个完成第四步openssl的path设定,第二个是将openssl的bin目录下的文件“openssl.cfg”修改个名字,然后在c盘下创建“\usr\local\ssl\”目录,将文件复制进去。

    3、再运行命令:openssl req -new -out server.csr -key server.key根据密钥文件生成签署文件。

    其中各个设置项中,除了Common Name其它的各项都可以为空,不过为了后期你好辨别证书,最好不要设置空,其中Common Name的值必须是你的服务器ip或者是域名,本机测试的话可以用localhost,但是如果要通过移动设备来访问就不能设置成localhost。

    4、再运行命令:openssl genrsa  -out ca.key 1024生成客户端密钥文件。

    5、再运行命令:openssl req  -new -x509 -days 365 -key ca.key -out ca.crt生成客户端的签署文件。

    填写的内容和第三步一致即可,其中organizationName必须和第三步的一致

    6、在当前目录下创建demoCA文件夹,并在demoCA下创建文件index.txt和serial,serial内容为01,index.txt为空,以及文件夹newcerts

    注意:serial没有后缀名,执行完第六步后请修改openssl.cnf文件中的dir的值,更改为新建的demoCA下,否则第七小步会让你报错报的痛不欲生。(仅限linux系统,windows系统即使修改了也会报错,未找到好的解决方法)

    7、在命令行中输入:openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key让客户端的签署证书能够被网站服务器的签署证书认识

    8、运行命令openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12把服务端签署证书转换浏览器可以识别的PCS12格式,密码使用上面输入的密码“123456”。

    9、运行命令java -cp jetty-5.1.10.jar org.mortbay.util.PKCS12Import server.p12  server.jks使用jetty中的PKCS12Import工具类完成转换,密码同上.(jetty-5.1.10.jar需要放置到当前文件夹中)

    如果出现错误:说明你的jetty-5.1.10.jar没有复制到命令行的当前文件夹下。

    第三步:配置Tomcat打开https

    <connector port="8443"      protocol="org.apache.coyote.http11.Http11Protocol"

    SSLEnabled="true"  maxThreads="150"      scheme="https" secure="true"  clientAuth="false"

    keystoreFile="D:/apache-tomcat-6.0.35/webapps/ROOT/ca/server.p12"  keystorePass="123456"      keystoreType="PKCS12"

    truststoreFile="D:/apache-tomcat-6.0.35/webapps/ROOT/ca/server.jks"  truststorePass="123456"      truststoreType="JKS"/>

    注意:keystoreFile、keystorePass为文件生成的位置和生成证书时输入的密码。

    Ps:若出现无法连接到x.x.x.x服务器,有以下几种情况:

    1)所有涉及到填写ip的步骤,ip未填写正确

    2)代码中springmvc给拦截了,需要放开证书所在目录下的权限,如下图

    最后附上引荐的文章链接(里面有所需要的工具):www.cnblogs.com/janken/p/3726017.html

    相关文章

      网友评论

          本文标题:IOS发布https证书制作

          本文链接:https://www.haomeiwen.com/subject/itgapttx.html