Keytool SSL https tomcat 授信访问

来源:互联网 发布:百游网络 编辑:程序博客网 时间:2024/04/28 23:11

一、keytool生成证书

利用JDK的keytool工具生成证书,(注意:这里的名字与姓氏一定要与tomcat所在服务器的域名一致)如下图-1所示:

-1

二、准备工作

2.1、验证是否已经创建过同名的证书,使用如下命令即可:

keytool -list -v -alias tomcat -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -storepass changeit 

2.2、若已经创建同名的证书,删除已创建的证书,使用如下命令即可:

keytool -delete -alias tomcat -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -storepass changeit

2.3、确认JDK(如没有安装JDK,请先安装JDK以及配置好相关的环境变量)环境变量下没有carcerts文件,如下图-2所示:

-2

2.4、导出证书,由客户端安装,命令如下图-3所示:

-3

2.5、客户端配置:为客户端的JVM导入密钥(将服务器下发的证书导入JVM中),如下图-4所示:

-4

2.6、导入之后JDK环境变量目录下多出了如下图-5所示的文件:

-5

三、配置tomcat SSL

3.1、修改tomcat目录下的conf目录下的server.xml文件,如下图-6所示,将注释的SSL配置打开,并正确添加证书所在位置:

-6

3.2、配置web工程的SSL过滤规则,如下图-7所示,将我们需要发布在tomcat下的web工程中的web.xml添加如下配置:

图-7

四、客户端浏览器添加客户端授信证书

4.1、如下图-8所示将前面生成的mycerts.cer证书在客户端机器上双机安装:

-8

4.2、测试访问:

4.2.1、没有添加授信证书的访问效果如-9以及图-10,客户端IP为192.168.1.11,tomcat所在服务器ip为192.168.1.190:

-9

图-10

4.2.2、安装客户端证书之后访问效果,如图-11所示:

-11

五、常见问题

5.1、未找到可信任的证书:

主要原因是在客户端未将服务器下发的证书导入到JVM中,可以用如下命令来查看证书是否真的导入到JVM中:

keytool -list -alias tomcat -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -storepass changeit

5.2、keytool错误:java.io.IOExcepition:keystore was tampered with,or password was incorrect

原因是在你的HOME目录下是否还有.keystore存在,如果存在那么把它删除掉,然后再执行,或者删除”%JAVA_HOME%/JRE/lib/security/cacerts“再执行,建议直接删除掉cacerts再导入。

0 0
原创粉丝点击