本文引荐了网上其他小盆友的文章,加上一点自己多次失败的心得,若有得罪请小喷。
必要的软件(版本随意):
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
网友评论