1.单双向认证
(1).单向认证,就是传输的数据加密过了,但是不会校验客户端的来源
(2).双向认证,如果客户端浏览器没有导入客户端证书,是访问不了web系统的,找不到地址
只是数据加密,通话密钥不加密,被截取也只是截取加密过的数据,所以只要加密方法足够强大并不容易解开,想要用系统的人没有证书就访问不了系统的话,就采用双向
2.单向配置:
(1):为服务器生成证书
使用keytool为Tomcat生成证书,命令如下:
keytool -genkey -v -alias myKey -keyalg RSA -validity 3650 -keystore
/Users/zhilin/test2019/myKey.keystore
“密码设置的是123456”
“myKey ”别名,后续执行证书相关命令,这个别名要一致(可自定义名称)
“/Users/zhilin/test2019/myKey.keystore”含义是将证书文件的保存路径,证书文件名称是myKey.keystoree(自定义名称);
“-validity 3650”含义是证书有效期,3650表示10年,默认值是90天;
(2)打开Tomcat 根目录下的 /conf/server.xml ,找到如下配置段,修改如下:
注意:
–、protocol里面的值,如果用http 1.1,那么https的链接就会打不开,需要加一段重定向,把http的请求重定向转为https。
(3)然后启动tomcat,输入 https://localhost:8443/ ,打开会弹出一个提示框:证书不可信任。
(4)生成信任证书文件,客户端导入证书即可信任访问,命令如下
客户端生成信任证书文件
keytool -export -alias myKey -file /Users/zhilin/test2019/test.cer -keystore /Users/zhilin/test2019/myKey.keystore -validity 36500
“myKey”别名,后这个别名要与服务器证书的别名一致(可自定义名称)
“/Users/zhilin/test2019/myKey.keystore”服务器证书路径;
“/Users/zhilin/test2019/test.cer”生成信任证书的保存路径
“-validity 36500”含义是证书有效期,36500表示100年,默认值是90天;
(5)客户端浏览器导入证书
双击证书文件test.cer,导入到受信任的根证书颁发机构位置上,再次访问则正常啦。
(6)配置重定向,使浏览器输入http://localhost:8080 重定向到 https://localhost:8443
在Tomcat 根目录下的 /conf/web.xml,在倒数第二行,加入以下代码